有如下程序: #inc1ude<iostream> using namespace std; c1ass A{ public: virtual void f(){cout<<1;} void g0{cout<

admin2017-06-18  16

问题 有如下程序:
    #inc1ude<iostream>
    using namespace std;
    c1ass A{
    public:
    virtual void f(){cout<<1;}
    void g0{cout<<2;}
    };
    c1ass B:public A{
    public:
    Virtual void f(){cout<<3;}
    void g(){cout<<4;}
    };
    void show(A &a){a.f();a.g();}
    int main(){
    B b;
    show(b);
        return 0;
    }
    运行时的输出结果是(    )。

选项 A、12
B、34
C、14
D、32

答案D

解析 在派生类classB中对基类中的虚拟成员函数virtual voidf()和实函数void g()进行了重新定义,在主函数中通过语句show(b);调用派生类中的虚函数virtual void f(){ cout<<3;}输出3,调用基类的实函数void g(){ cout<<2;}输出2。所以选项D为正确答案。
转载请注明原文地址:https://jikaoti.com/ti/7Ot0FFFM
0

随机试题
最新回复(0)