有如下程序: #inc1ude <iostream> using namespace std; class Base{ public: virtual void functionl() {cout<<’0’;}

admin2016-11-23  64

问题 有如下程序:
    #inc1ude <iostream>
    using namespace std;
    class Base{
    public:
    virtual void functionl()  {cout<<’0’;}
    void function2()  {cout<<’1’;}
    };
    class Derived: public Base{
    public:
    void functionl()  {cout<<’2’;}
    void function2(){cout<<’3’;}
    };
    int main(){
    Base*p= new Derived();
    p一>functionl();
    p一>function2();
    return0,
    };
    运行时的输出结果是(     )。

选项 A、01
B、21
C、03
D、23

答案B

解析 函数functionl()在基类Base中定义为虚成员函数,而在派生类Dervied中重新进行了定义,输出字符2,函数function2()在基类Base中定义虚成员函数,在主函数中使用指向基类的指针变量p访问function2()时,输出1。
转载请注明原文地址:https://jikaoti.com/ti/7et0FFFM
0

最新回复(0)