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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
マカロニ
記事: 8
登録日時: 14年前

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

#1

投稿記事 by マカロニ » 14年前

お世話になっております。
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;
}

Blue

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

#2

投稿記事 by Blue » 14年前

7行目の
>> int (*funcP)();

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

マカロニ
記事: 8
登録日時: 14年前

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

#3

投稿記事 by マカロニ » 14年前

クラス名を入れたら無事通りました。
クラス名まで入れないと駄目だと勉強になりました、Blueさんありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る