有如下程序; #include using namespace std; class Base{ public: void outputo{cout

admin2020-07-30  16

问题 有如下程序;
    #include
    using namespace std;   
    class Base{
    public:
    void outputo{cout<    virtual void Printo{cout<<‘B’;)
    );
    class Derived:public Base{
    public:
    void output(){cout<<2;)   
    void Print0{cout<<‘D’;)
    );
    int main(){
    Base*ptr=new Derived;
    ptr一>output();
    ptr一>Print();
    delete ptr;
    return ():
    )
    程序的输出结果是(    )。

选项 A、lB
B、lD
C、2B
D、2D

答案B

解析 此题考查的是虚函数与多态性。在成员函数的声明前面加上vimal关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。本题中,从基类的定义可以看出:output()函数是普通成员函数,而Print()函数是虚函数。所以,通过ptr指针调用的output()是基类中的output(),而通过它调用的PIint()则是派生类中的Print()。
转载请注明原文地址:https://jikaoti.com/ti/Hzl0FFFM
0

最新回复(0)