typedef int(*fn)();
class a
{
public:
a(){};
~a(){};
fn f;
}
class b
{
public:
b(){};
~a(){};
int f();
}
void main()
{
a Ca;
b Cb;
Ca.f=Cb.f;
}
有没有办法,怎么办?
...全文
2822打赏收藏
紧急求助.函数指针问题!(在线等待)
怎么把一个对象中的函数名指针付值给另一个类中的函数指针; typedef int(*fn)(); class a { public: a(){}; ~a(){}; fn f; } class b { public: b(){}; ~a(){}; int f(); } void main() { a Ca; b Cb; Ca.f=Cb.f; } 有没有办法,怎么办?
如果类中的member function为non-static那么只能作为pointer to member function
被赋值给另一个pointer to member function,并且调用时需要class的实例或指向
实例的指针来调用。这里需要实例或指针的原因是很显然的:non-static member function
要操作non-static data member(如果不是,那为什么这个member function不被声明为
static哪?),而这些non-static data member一定是属于某个实例的,如果不指明是
哪个实例,那这个member function又该如何工作?