ページ 11

メンバ関数ポインタにメンバ関数のアドレスを入れたい

Posted: 2011年9月30日(金) 10:59
by マカロニ
お世話になっております。
C++でClassを作成しメンバに関数ポインタと関数があるのですが
関数ポインタに代入する所でエラーがでてしまい詰まっています。
代入する事は可能でしょうか。
助力お願いします。

使用環境 visualstudio 2010 c++ windows
エラーメッセージ
error C2440: '=' : 'int (__thiscall Jumpfunc::* )(void)' から 'int (__cdecl *)(void)' に変換できません
----ソース

コード:

 
class Jumpfunc{
private:
	Jumpfunc::Jumpfunc();
	int logo();
public:
	int (*funcP)();
}jumpfunc;



Jumpfunc::Jumpfunc(){
	jumpfunc.funcP = &Jumpfunc::logo;
}

int Jumpfunc::logo(){
return 1;
}

Re: メンバ関数ポインタにメンバ関数のアドレスを入れたい

Posted: 2011年9月30日(金) 11:13
by Blue
7行目の
>> int (*funcP)();

int (Jumpfunc::*funcP)();
にしたらどうでしょうか?

Re: メンバ関数ポインタにメンバ関数のアドレスを入れたい

Posted: 2011年9月30日(金) 19:36
by マカロニ
クラス名を入れたら無事通りました。
クラス名まで入れないと駄目だと勉強になりました、Blueさんありがとうございます。