0
私は他のクラスのメソッドへのポインタで初期化されたメソッドを呼び出そうとしていますが、私はthis: に従っています。ポインタで初期化されたコールクラスメソッド
class y
{
public:
int GetValue(int z)
{
return 4 * z;
}
};
class hooky
{
public:
int(hooky::*HookGetValue)(int);
};
int(hooky::*HookGetValue)(int) = (int(hooky::*)(int))0x0; // memory address or &y::GetValue;
int main()
{
hooky h; // instance
cout << h.*HookGetValue(4) << endl; // error
return 0;
}
生成エラーは次のとおりです:
は、この検討し
[エラー]」を使用しなければなりません。 ''または ' - >'と入力して、 'HookGetValue(...)'のメンバー関数へのポインタを呼び出します。 '(... - > * HookGetValue)(...)'
として表示されることを意味し、どの私はあなたが '(H。* HookGetValue)を書き込む必要がありますね(4)'の代わりに? –
@AdrianShumは大変感謝していますが、なぜ機能するのですか?私に言うことができますか?私は同じであるかどうか分からない。 – nikomaster
私の更新をチェック –