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

admin2019-02-22  19

问题 有如下程序:
    #inc1ude<iostream>
    using namespace std;
    class Base{
    public:
    virtual void Show(){cout<<’B’;}
    };
    class Derived: public Base{
    public:
    void Show(){cout<<’D’;}
    };
    int main(){
    Base *p1=new Derived;
    Derived *p2=new Derived;
    pl一>Show();
    p2一>Show();
    delete p1;
    delete p2;
    return 0;
    }
    运行这个程序的输出结果是(     )。

选项 A、BB
B、BD
C、DB
D、DD

答案D

解析 在基娄Base中定义了虚函数Show0输出字符‘B’,而在派生类Derived中对虚函数Show()进行了重新定义,输出字符‘D’。在主函数中对基类和派生类中的虚函数Show()进行了多态调用,此时调用的是派生类中重新定义的Show(),输出字符‘D’。
转载请注明原文地址:https://jikaoti.com/ti/S1t0FFFM
0

最新回复(0)