在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 #include<iostream.h> using namespace std; class A { public:A(){cout<<‘A’;} };

admin2010-12-16  39

问题 在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。
#include<iostream.h>
   using namespace std;
   class A
   {
   public:A(){cout<<‘A’;}
   };
   class B:______
   {
   public:B(){cout<<‘B’;)
   };
   class C:______
   {
   public:C(){cout<<‘C’;}
   };
   class D:public

选项

答案virtual publicA virtual public A。

解析  本题考查虚基类的应用。通过虚基类所派生的类,在所产生的对象中,只包含了一个和其他类共享的基础对象,也就是说,从同一个基类中以虚拟方式派生的所有类,在它们所产生的对象里,不会有一份基础对象,而只是在内存里保留一份基础对象,而派生类中只保留指向此基础对象的指针,这样就不会同时有两份基类对象的情形发生。题中程序最后字符A只输出了一次,所以类A必须为类B和类C的虚基类。
转载请注明原文地址:https://kaotiyun.com/show/AKjp777K
0

最新回复(0)