看看下面的代码,你能看出错误吗
class A {
public:void fun(){}};
int main() {A a;void (A:: * p)() = &A::fun;(*p)();
}
这段代码在调用成员函数时存在问题。正确的方式是使用对象来调用成员函数,而不是通过指针。以下是修正后的代码:
class A {
public:void fun() {}
};int main() {A a;void (A::* p)() = &A::fun;(a.*p)(); // 通过对象调用成员函数
}
修正后的代码通过(a.*p)()
的方式调用了成员函数fun
,其中a
是对象,p
是指向成员函数的指针。这样就可以正确地调用成员函数了。