#include <iostream> using namespace std; class A { public : virtual void fun() { cout << "A::fun() " ; } }; class B: public A { public : void fun() { cout << "B::fun() " ; } }; class C: public B { public : void fun() { cout << "C::fun() " ; } }; int main() { B *bp = new C; bp->fun(); return 0; } |
(A) A:有趣 (B) B:乐趣 (C) C::乐趣() 答复: (C) 说明: 这里需要注意的重要一点是B::fun()是虚拟的,即使我们没有使用虚拟关键字。
当一个类有一个虚函数时,所有子类中具有相同签名的函数自动变为虚函数。我们不需要在B和C中的fun()声明中使用virtual关键字。它们无论如何都是虚拟的。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END