定义如下的基类A和派生类B:class A { public: virtual void fun() // 函数成员fun被声明为虚函
定义如下的基类A和派生类B:class A { public: virtual void fun() // 函数成员fun被声明为虚函数 { cout << “A :: fun() called”; } }; class B : public A { public: void fun() // 重写虚函数成员fun { cout << “B :: fun() called”; } }; 执行下列代码:A *p; // 定义基类A的对象指针p B bObj; // 定义派生类B的对象bObj p = &bObj; // 将基类指针p指向派生类对象bObj p->fun(); // 通过基类指针p调用虚函数成员fun 通过基类指针p调用虚函数成员fun,将自动调用哪个函数?()
A、A::fun()
B、B::fun()
C、先调用A::fun(),再调用B::fun()
D、语法错误