我想用函數指針初始化一個結構,但是我這樣做很麻煩,除非它是用全局函數完成的。下面的代碼工作:C++:初始化結構和設置函數指針
float tester(float v){
return 2.0f*v;
}
struct MyClass::Example{
typedef float(*MyFunc)(float);
MyFunc NameOfFunc;
float DoSomething(float a){
return NameOfFunc(a);
}
};
struct Example e;
e.MyFunc = tester;
我的問題是,每當我嘗試用tester
功能爲MyClass
函數的代碼將不再有效做到這一點。換句話說,我將測試儀功能更改爲:
float MyClass::tester(float v){
return 2.0f*v;
}
任何和所有幫助表示讚賞(包括鏈接)!我曾嘗試谷歌上搜索周圍的問題,但我不確定要搜索什麼(我試過的東西,如「類C++結構函數指針初始化」無濟於事)
需要 「C++成員函數指針」。順便說一句,成員函數需要上下文(object是'this'),所以它不能像普通函數一樣使用。 –
由於'MyClass :: tester'似乎不依賴於任何'MyClass'的非靜態成員,也許你希望它成爲'static'或者只是一個自由函數,就像以前一樣? (然後這段代碼會起作用) –