C++虚拟函数问题13

null

#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
喜欢就支持一下吧
点赞11 分享