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

admin2020-04-07  28

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

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

答案B

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

最新回复(0)