65,210
社区成员
发帖
与我相关
我的任务
分享
如此啊,收藏了!#include <cstdlib>
#include <iostream>
using namespace std;
class A
{
public:
void print(int x){ cout<<"A::print "<<x<<endl; }
};
typedef void (A::*pf)(int); //函数指针类型定义
class B
{
public:
void pp(class A& a,pf pa){(a.*pa)(20);} //pa是一个类A的成员函数指针,类B与类A是完全独立的类,调用类A的成员函数需要一个类A的对象,这里同时传进来一个类A的对象a
};
int main()
{
A a;
B b;
pf pa=&A::print; //定义类A函数指针指向A::print函数
(a.*pa)(10); //利用类A对象a使用函数指针
b.pp(a,pa); //函数指针做参数传递
return 0;
}
#include <cstdlib>
#include <iostream>
using namespace std;
class A
{
public:
void print(int x){ cout<<"A::print "<<x<<endl; }
};
typedef void (A::*pf)(int);
class B
{
public:
void pp(class A& a,pf pa){(a.*pa)(20);};
};
int main()
{
A a;
B b;
pf pa=&A::print;
(a.*pa)(10);
b.pp(a,pa);
return 0;
}