我有一个类 A 是类 B 的子类,我需要类 B 的所有子类都有一个函数指针,该函数指针指向一个函数,用于处理在编译类后可由不同文件中的外部函数更改的类。A 类的所有实例都应该指向一个函数,B 的所有实例都应该指向一个函数,但是 A 和 B 应该能够指向不同的函数。我怎样才能做到这一点?我尝试了一个静态函数指针和一个私有静态函数指针,但都没有奏效。
class B{
public:
static void (* func)();
}
class A : public B{
}
class C : public B{
}
void funcA(){
cout<<"A"<<endl;
}
void funcB(){
cout<<"B"<<endl;
}
void funcC(){
cout<<"C"<<endl;
}
void main(){
B b=B();
B b2=B();
B a=A();
B a2=A();
B c=C();
B c2=C();
b.func=funcB;
a.func=funcA;
c.func=funcC;
a.func();
b.func();
c.func();
a2.func();
b2.func();
c2.func();
}
我想要的输出是
B
A
C
B
A
C