在 类 之间传递函数指针作为参数
Pass a function pointer as an argument between classes
我们如何将函数指针作为参数传递?例如,函数指针 myFunPtr
是调用 class A
时的参数,我需要此指针指向 class [=15= 中的函数 funcB
]
#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;
}
我们如何将函数指针作为参数传递?例如,函数指针 myFunPtr
是调用 class A
时的参数,我需要此指针指向 class [=15= 中的函数 funcB
]
#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;
}