执行下列程序的输出结果是______: #include<iostream> using namespacestd; class TestClassl { public: void funl(){cout<<"Te

admin2013-02-27  35

问题 执行下列程序的输出结果是______:
#include<iostream>
    using namespacestd;
    class TestClassl
    {
     public:
    void funl(){cout<<"TestClassl\n";}
    virtual void fun2() {cout<<"TestClassl\n";}
    };
    class TestClass2:public TestClass1
    {
      public:

选项

答案TestClass1 TestClass2

解析  主函数中首先定义TestClass2对象obj,然后执行“f(obj);”。在“void f(TestClass1&b){b.fun1();b.fun2();}”语句中,fun中参数为TestClass1类型的对象b,其中调用fun1()和fun2()。基类TestClass1中的fun2()为虚函数,所以派生类中的fun2也是虚函数,因此输出为调用TestClass1中的fun1,TestClass2中的fun2。即结果为TestClass1和TestClass2。
转载请注明原文地址:https://jikaoti.com/ti/xrE0FFFM
0

最新回复(0)