我刚刚学习函数指针,想测试它如何与成员函数一起使用。以下代码在标记处编译失败。
# include <iostream>
# include <stdio.h>
using namespace std ;
class TMyClass {
public:
int DoIt ( float a, char b, char c ) {
cout << " TMyClass::DoIt " << endl ;
return a + b + c ;
}
int DoMore ( float a, char b, char c ) {
cout << " TMyClass::DoMore " << endl ;
return a - b + c ;
}
int ( TMyClass::*pt2Member ) ( float, char, char ) ;
int test_function_pointer ( ) {
this->pt2Member = &TMyClass::DoMore ;
int result = ( this -> *pt2Member ) ( 12, 'a', 'b' ) ; // wrong!
// expected unqualified-id before "*" token
return 0 ;
}
} ;
int main () {
TMyClass A ;
A.test_function_pointer () ;
return 0 ;
}
我想知道如何让它发挥作用。谢谢!
最佳答案
空间的作用有多大:
int result = ( this ->* pt2Member ) ( 12, 'a', 'b' );
// ^^^
->*
是一个独立的运算符。
查看修复的演示 here请。
关于c++ - 函数指针指向成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075546/