C/C++の宿題なら俺にやらせろ!
■ このスレッドは過去ログ倉庫に格納されています
0309デフォルトの名無しさん
NGNGclass Aとclass Bがあって
Bは、コールバックされる関数(SetTimerとか)を使っていて、
さらにそのコールバックされる関数の中でBのメンバー関数を呼び出したい。
BにAのインスタンスのポインターを持たせればできますが、
1. Bの実装でAに依存しない(class Aのクラス定義を読み込まない)
2. Aをコールバックされる関数を含んだ中傷クラスのサブクラスとしない
という条件で、うまい方法ってないですか?
現状はtemplateを使って(public,private等は省略)
class base {
virtual void operaot()() = 0;
};
template<class T>
class callback : public base
{
typedef void (T::*F)();
callback(T* obj, F func) : o(obj), f(func) {}
void operator()() { return o->*f();
T* o;
F f;
};
とやって、AはBにcallbackのインスタンスを渡すようにしてますが、今市…
■ このスレッドは過去ログ倉庫に格納されています