itgle.com

请将下列类定义补充完整,横线处应填加语句______。class TestClass{public:void fun(){cout<<"Base::fun"<<end1;}};class TestClass1:public TestClass{public:voidfun(){______;//显示调用基类的fun函数cout<<"TestClass1::fun"<<end1;}};

题目

请将下列类定义补充完整,横线处应填加语句______。

class TestClass{public:void fun(){cout<<"Base::fun"<<end1;}};

class TestClass1:public TestClass

{

public:

voidfun()

{

______;//显示调用基类的fun函数

cout<<"TestClass1::fun"<<end1;

}

};


相似考题
参考答案和解析
正确答案:TestClass::fun()
TestClass::fun()
更多“请将下列类定义补充完整,横线处应填加语句______。 class TestClass{public:void fun(){cout<<"Ba ”相关问题
  • 第1题:

    下列程序中横线处正确的语句是()。includeusing namespace std;class TestClass{publi

    下列程序中横线处正确的语句是( )。 #include<iostream> using namespace std; class TestClass { public: void fun(){cout<<"TestClass::fun"<<end1;} }; class TestClass1:public TestClass { void fun() { ______//显示调用基类的函数 fun() cout<<"TestClass1::fun"<<end1; } };

    A.fun();

    B.TestClass.fun()

    C.TestClass::fun();

    D.TestClass->fun();


    正确答案:C

  • 第2题:

    请将下列类定义补充完整。

    class Base{public:void fun(){cout<<"Base∷fun"<<end1;}};

    c1ass DehVed:public Base

    {

    public:

    void fun(){

    ______ ∥显式调用基类的fun函数

    cout<<"Derived∷fun"<<endl;

    }

    };


    正确答案:Base∷fun();
    Base∷fun(); 解析: 此题考查的是虚基类的使用。使用符号“∷”可以用来限定要访问的成员所在的类的名称。在派生类中对基类成员的访问应该是唯一的,但是,多继承情况下就需要通过使用对象作用域分辨来解决这种对基类成员访问的二义性问题。

  • 第3题:

    下列程序的输出结果为2,横线处应添加语句()。includeusing namespace std;{public:___

    下列程序的输出结果为2,横线处应添加语句( )。 #include<iostream> using namespace std; { public: ______void fun(){cout<<1;} }; class TestClass2:public TestClass1 { public:void fun(){cout<<2;) }; int main() { TestClass1 *p=new TestClass2; p->fun(); delete p; Teturn 0; }

    A.public

    B.private

    C.virtual

    D.protected


    正确答案:C
    解析:由主函数main入手,定义TestClass1类的指针对象p指向派生类Testclass2。因为基类和派生类中都有fun函数,题目要求输出为2,就是基类对象访问派生类中fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。

  • 第4题:

    请将下列程序的横线处补充完整,使得输出结果为bbaaincludeusing namespace std;class

    请将下列程序的横线处补充完整,使得输出结果为bbaa

    include<iostream>

    using namespace std;

    class A{

    public:

    ______{cout<<"aa";}

    };

    class B:public A{

    public:

    ~B(){cout<<"bb";}

    };

    int main(){

    B*p=new


    正确答案:~A()
    ~A() 解析: 此题考查的是类的构造与析构。本题要求输出的结果中包含aa,所以基类A中横线处的函数一定要被执行。横线处应是定义基类的构造或者析构函数,如果定义的是构造,那么aa肯定在new操作时就输出,而下面的bb是在析构函数中,会在delete时被输出。故可以肯定应填入基类A的析构函数定义:~A()。

  • 第5题:

    请将下列类定义补充完整。

    class Base{public:void fun( ){cout<<"Base::fun"<<endl;}};

    class Derived:public Base

    {

    public:

    void fun( ){

    ______//显式调用基类的fun函数

    cout<<"Derived::fun"<<endl;

    }

    };


    正确答案:Base::fun( );
    Base::fun( ); 解析:本题考核虚基类。作用域分辨符号是"::",它可以用来限定要访问的成员所在的类的名称。一般来说,在派生类中对基类成员的访问应该是唯一的。但是,多继承情况下可能造成对基类中某个成员的访问出现不唯一的情况,通过使用对象作用域分辨符可以解决这种对基类成员访问的二义性问题。