如何解决在类之间传递函数指针作为参数
如何将函数指针作为参数传递?例如,函数指针myFunPtr
是调用类A
时的参数,我需要此指针指向类funcB
中的函数B
#include <iostream>
typedef void(*myFunPtr)(void);
class A {
public:
A(myFunPtr ptr);
virtual ~A();
myFunPtr funptr;
};
A::A(myFunPtr ptr){
std::cout << "Constructor A \n";
funptr = ptr;
}
A::~A(){}
///////////////
class B {
public:
B();
virtual ~B();
void funcB();
};
B::B(){
std::cout << "Constructor B \n";
A *objA = new A(funcB);
}
B::~B(){}
void B::funcB(){
std::cout << " call B::funcB \n";
}
///////////////
int main(){
B *objB = new B();
delete objB;
return 0;
}
解决方法
这是指向自由函数(不是类成员函数)的函数指针类型:
typedef void(*myFunPtr)(void);
这是B
成员函数指针类型:
typedef void(B::*myFunPtr)(void);
这是另一个Demo,它将在B
中调用成员函数。为此,将一个B
的指针和一个B
成员函数的指针存储在A
中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。