虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。 有如下程序: #inc1ude <iostream> using namesp

admin2020-11-11  27

问题 虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。
    有如下程序:
    #inc1ude <iostream>
    using namespace std;
    c1ass Base
    {
    public:
    virtual void f(){cout<<"f0+";}
    void g(){cout<<"g0+";}
    };
    c1ass Derived:public Base
    {
    public:
    Void g(){cont<<"f+";}
    void go{cout.<<,"g+";}
    };
    int main
    {
    Derived d;
    Base*p==&d;
    p—>f();P—>g();
    retum0;
    }
    运行时输出的结果是(    )。

选项 A、f+g+
B、f0+g+
C、f+g0+
D、f0+g0+

答案C

解析 此题考查的是虚函数和多态性。此题中,因为f()是虚函数具有多态性,所以通过指针p调用的f()是派生类Derived中定义的f();而go不是虚函数,通过指针p调用的是Base中的g()。
转载请注明原文地址:https://jikaoti.com/ti/rjl0FFFM
0

最新回复(0)