C++中回调函数及函数指针的实例详解

C++中回调函数函数指针的实例详解

如何获取到类中函数指针

实现代码:

//A类与B类的定义

class A

{

public:

void Test()

{

cout << "A::Test()" << endl;

}

};

class B : public A

{

public:

void Test()

{

cout << "B::Test()" << endl;

}

};

//定义类的成员函数指针

typedef void (A::*A_mFun)(void);

typedef void (B::*B_mFun)(void);

int main()

{

//Code

A a;

B b;

A_mFun pAFun = &(A::Test); //Note:Test成员函数必须为public,否则会报错

B_mFun pBFun = &(B::Test); //Note:Test成员函数必须为public,否则会报错

(a.*pAFun)(); //输出A::Test()

(b.*pBFun)(); //输出B::Test()

(b.*pAFun)(); //输出A::Test()

A* pA = &a;

B* pB = &b;

(pA->*pAFun)(); //输出A::Test()

(pB->*pBFun)(); //输出B::Test()

(pB->*pAFun)(); //输出A::Test(),B*变量可赋值给A*变量

return 0;

}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是 C++中回调函数及函数指针的实例详解 的全部内容, 来源链接: utcz.com/z/333435.html

回到顶部