这是简单的类定义,如
- class Base{
- public:
- virtual void Func(){
- cout<<"Func in Base"<<endl;
- }
- };
- class Derived : public Base{
- public:
- virtual void Func(){
- cout<<"Func in Derived"<<endl;
- }
- }
- Base *b = new Derived();
和声明
- (b->*&Base::Func)();
调用Func的派生版本,不同于b-> Base :: Func(),它按预期调用基本版本,为什么会发生这种情况,这个调用的含义到底是什么?