這是一個後續問題我以前的帖子:C++: Initializing Struct and Setting Function PointerC++:成員函數指針內結構
我的新問題是,我怎麼叫結構內的指針到成員函數?我已經修改了我以前的代碼:
float MyClass::tester(float v){
return 2.0f*v;
}
struct MyClass::Example{
float(Scene_7::*MyFunc)(float);
float DoSomething(float a){
return (MyFunc)(a); //ERROR, SEE BELOW FOR OUTPUT
}
};
然後我設定的功能如下,並將結果輸出到呼叫:
struct Example e;
e.MyFunc = &MyClass::tester;
std::cerr << e.DoSomething(1.0f) << std::endl;
我得到以下錯誤:必須使用」。 '或' - >'來調用指向成員函數...
問題是我不知道如何做到這一點。我猜我必須在DoSomething
之內調用像this->*(myFunc)(a)
之類的東西,但this
引用該結構。我已經嘗試搜索「這在結構指針到成員函數」,但一直未能找到任何東西。任何幫助或建議都會很棒。我覺得我很接近,但這只是語法問題。