几种用函数指针方式来访问类成员函数的方法总结
前提:假設成員函數不訪問類的成員變量。
環境:DEV-C++,別的環境有可能編譯無法通過。
代碼如下:
#include <iostream>
using namespace std;
class A
{
public:
?? ?int add(int a, int b)
?? ?{
?? ??? ?int c = a + b;
?? ??? ?return c;
?? ?}
};
typedef int(A::*pfun)(int, int);
typedef int(*gfun)(int, int);
int main()
{
?? ?{
?? ??? ?cout <<"11111...\n";?
?? ??? ?gfun q;
?? ??? ?q = (gfun)A::add;?? ?
?? ??? ?int c = (*q)(7, 100);
?? ??? ?cout << c << endl;?? ?
?? ?}?? ?
?? ?
?? ?
?? ?{?? ??? ?
?? ??? ?cout <<"222222...\n";
?? ??? ?A a;
?? ??? ?pfun q = A::add;
?? ??? ?int c = (a.*q)(7, 100);
?? ??? ?cout << c << endl;?? ??? ?
?? ?}
?? ?{
?? ??? ?cout <<"333333...\n";?
?? ??? ?A *b = new A();
?? ??? ?pfun q = A::add;
?? ??? ?int c = (b->*q)(7, 100);
?? ??? ?cout << c << endl;?? ??? ?
?? ?}
?? ?
?? ?return 1;
}
?
運行結果:
總結
以上是生活随笔為你收集整理的几种用函数指针方式来访问类成员函数的方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++成员函数指针强制转换为一般函数指针
- 下一篇: C++之全局函数和成员函数互相转换