64,654
社区成员
发帖
与我相关
我的任务
分享
class A {
public:
void call() { func(); }
protected:
std::function<void(void)> func;
};
class B : class A{
public:
B():{ func = std::bind(&B::speek, this); }
void speek();
};
int main() {
A a;
B b;
a.call(); // do nothing
static_cast<A>(b).call(); // call B::speek;
}
class A;
class B;
union Helper
{
A *pa;
B *pb;
};
class A
{
public:
void test();
};
class B:public A
{
public:
void speek()
{
cout<<"speek"<<endl;
}
};
void A::test()
{
Helper hp;
hp.pa=this;
hp.pb->speek();
}