AFAIK,在 C++ 中,在同一类的函数成员中调用另一个成员函数不应该需要“this”前缀,因为它是隐式的。但是,在使用函数指针的特定情况下,编译器需要它。只有当我通过 func 指针包含调用的“this”前缀时,以下代码才能正确编译 -
当使用函数指针时,编译器可以推断出它指向同一类的成员函数吗?
class FooBar
{
private:
int foo;
public:
FooBar()
{
foo = 100;
}
int GetDiff(int bar)
{
return abs(foo - bar);
}
typedef int(FooBar::*MyFuncPtr)(int);
void FooBar::Bar()
{
MyFuncPtr f = &FooBar::GetDiff;
(this->*f)(10);
GetDiff(10);
}
};