[英]How to assign a member function to a pointer to member function in C++
我正在嘗試將成員函數分配給C ++中的成員函數指針,但出現錯誤。 我有這樣的代碼:
#ifndef MY_CLASS_H
#define MY_CLASS_H
class MyClass {
MyClass* (MyClass::*memPtr_) (ParamType);
public:
void myFunction();
void myFunction2();
void myFunction3();
MyClass& foo(ParamType var);
MyClass& bar(ParamType var);
MyClass& fooBar(ParamType var);
...
};
#endif
和...
void MyClass::myFunction() {
memPtr_ = &MyClass::foo;
...
void MyClass::myFunction2() {
memPtr_ = &MyClass::bar;
...
void MyClass::myFunction3() {
memPtr_ = &MyClass::fooBar;
...
並在線
memPtr_ = &MyClass::foo;
和
memPtr_ = &MyClass::bar;
和
memPtr_ = &MyClass::fooBar;
當我編譯時-我得到了錯誤:
"cannot convert 'MyClass& (MyClass::*)(ParamType)'
to MyClass* (MyClass::*)(ParamType)' in assignment."
我進行了搜索-但似乎無法找到解決該問題的方法-將成員函數分配給指向成員函數'memPtr_'的指針的正確語法是什么?
Jrok是正確的,我已解決了該問題。 我只是改變了:
MyClass *(MyClass :: * memPtr_)(ParamType);
至...
MyClass&(MyClass :: * memPtr_)(ParamType);
您不要使用沒有()
的函數名的地址,這就是指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.