有如下程序: #include using namespace std; class A{ public: virtual void fo{cout

admin2020-07-30  30

问题 有如下程序:
    #include
    using namespace std;
    class A{
    public:
    virtual void fo{cout<<1;)
    void go{cout<<2;}
    };
    class B:public A{
    public:
    virtual void f0{cout<<3;)
    void gO{cout<<4;)
    };
    void show(A&a){a.f0;a.g0;)
    int main(){
    B b:
show(b);
    return 0:
    }
    运行时的输出结果是(    )。

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

答案D

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

最新回复(0)