问题 填空题

有以下程序: #include <iostream> using namespace std; class A { public: virtual void show() { cout<<"A"; } }; class B : public A { public: void show() { cout << "B"; } }; void display( A * obj ) { obj-> show(); } int main ( ) {A demol;B demo2;display( & demol );display( & demo2 );return 0; } 执行后的输出结果为 【13】

答案

参考答案:AB

解析: 本题考核赋值兼容原则以及派生与继承的应用。题中函数display()形参类型为类A,执行语句“display(&demo1);”则输出A。执行语句“display(&dem02);”时,由于show()函数为虚函数,所以调用类B中show()函数,输出B。所以最后结果为AB。

单项选择题
多项选择题