戻る

C++クラスのメソッドをコールバックメソッドにする

クラスに関数ポインタ変数を宣言する。
コールバックするメソッドのアドレスを関数ポインタ変数に設定する。
呼び出したい箇所で関数ポインタ変数を使用してメソッドを呼ぶ。

サンプルコード

例としてCSampleクラスのHRESULT CallBack(LPVOID pParam)メソッドをコールバックメソッドにする。
クラス作成
class CSample
{
public:
	CSample();

	// コールバックメソッド
	virtual HRESULT CallBack(LPVOID pParam){return S_OK;}

protected:
	HRESULT (CSample::*CALLBACK)(LPVOID);
}
関数ポインタ取得
	CALLBACK = &CSample::CallBack;
コールバック
	(this->*CALLBACK)(pParam);
CSampleクラスを継承するクラスでCallBackをオーバーライドして使用する。
inserted by FC2 system