niusouti.com

下列程序中划线处正确的语句是()。include using namespace std;class Base{public:vo下列程序中划线处正确的语句是( )。#include <iostream>using namespace std;class Base{public:void fun() { cout<<"Base:: fun"<<end1; }};class Derived: public Base{ void fun() { _______________________ //显试调用基类

题目
下列程序中划线处正确的语句是()。include using namespace std;class Base{public:vo

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

A.fun();

B.Base. fun();

C.Base:: fun();

D.Base->fun();


相似考题
参考答案和解析
正确答案:C
更多“下列程序中划线处正确的语句是()。#include <iostream>using namespace std;class Base{public:vo ”相关问题
  • 第1题:

    应在下面程序下划线中填写的正确的语句是( )。 include using namespace std;

    应在下面程序下划线中填写的正确的语句是( )。 #include <iostream> using namespace std; class A{ public: void test(){cout<< "this is A!";} }; class B:public A{ void test(){ ______ //显示调用基类函数test() cout<< "this is B!"; } }; void main(){}

    A.A::test()

    B.test()

    C.B::test()

    D.this->test()


    正确答案:A
    解析:A::表示A的作用域。

  • 第2题:

    为完成下面的程序,应在划线处填入的语句是includeusingnamespace std;class Base{pri

    为完成下面的程序,应在划线处填入的语句是 #include<iostream> using namespace std; class Base { private: int x; public: Base (int i) { x=i; } ~Base(){} }; class Derived:public Base { public: ______________//完成类Derive构造函数的定义 }; int main() { Derived Obj; return 0; }

    A.Derived(int i):Base(i){}

    B.Derived(){}

    C.void Derived (int i):Base(i){}

    D.Derived(int i){Base(i);}


    正确答案:A
    解析:本题考核派生类中的构造函数。程序中,类Derived是基类Base的公有派生。在类Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。

  • 第3题:

    请在下列程序中的横线处填写正确的语句。include using namespace std; class Base{ pu

    请在下列程序中的横线处填写正确的语句。

    include<iostream>

    using namespace std;

    class Base{

    public:

    void fun(){cout<<“Basefun”<<endl;}

    );

    class Derivde:public Base{

    public:

    void fun(){

    //调用基类的函数fun()

    cout<<“Derived fun”<<endl;

    }

    };


    正确答案:Base::fun()。
    Base::fun()。 解析: 本题考查的是派生类对基类成员的访问。本题中派生类Derived覆盖了基类Base中的fun (),如果需要调用基类中的fun(),则需要使用域运算符“::”。故应填写Base::fun()。

  • 第4题:

    有以下程序:include using namespace std; class Base { public: Base() { K=0; } int

    有以下程序:

    include<iostream>

    using namespace std;

    class Base

    {

    public:

    Base()

    {

    K=0;

    }

    int x;

    };

    class Derivedl:virtual public Base

    {

    public:

    Derivedl()

    {

    x=10;

    }

    };

    class Derived2:virtua1 public Base


    正确答案:20。
    20。 解析: 本题中,虽然Derived1和Derived2由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1中修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obi;”时,就会先调用虚基类Base的构造函数,使得x=0,然后执行类Derived1的构造函数使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。

  • 第5题:

    有如下程序:include using namespace std;class Base{ public: void fun() { cout<<"

    有如下程序: #include <iostream> using namespace std; class Base { public: void fun() { cout<<"Base::fun"<<endl; } }; class Derived : public Base { public: void fun() { ______ cout<<"Derived::fun"<<endl; } }; int main() { Derived d; d.fun(); return 0; } 已知其执行后的输出结果为: Base::fun Derived::fun 则程序中下划线处应填入的语句是( )。

    A.Base.fun();

    B.Base::fun();

    C.Base->fun();

    D.fun();


    正确答案:B
    解析:此题考查的是继承的使用。分析题目可知,横线处应填入对基类成员函数fun()的调用语句,此处只能使用作用域运算符“::”才能调用到基类的同名函数。

  • 第6题:

    在下列程序画线处填入的正确语句是()。includeusing namespace std;classBase{public:

    在下列程序画线处填入的正确语句是( )。 #include <iostream> using namespace std; class Base { public: void fun() { cout<<"Base::fun",<<end1; } }; class Derived:public Base { void fun() { ______________ //显式调

    A.fun();

    B.Base.fun();

    C.Base::fun();

    D.Base->fun();


    正确答案:C
    解析:本题主要考核作用域分辨符的使用。作用域分辨符“::”可以用来限定要访问的成员所在类的名称。

  • 第7题:

    有如下程序:includeincludeusing namespace std;class BASE{char c;public

    有如下程序: #include<iostream>#include<iosream> using namespace std; class BASE{ char c; public; BASE(char n):c(n){} virtual ~ BASE(){cout<<c;} }; class DERIVED; public BASE{ char c; public: DERIVED (char n): BASE (n+1)

    A.XY

    B.YX

    C.X

    D.Y


    正确答案:A

  • 第8题:

    应在下列程序画线处填入的正确语句是 ( )。include using namespace std;clas Base{pu

    应在下列程序画线处填入的正确语句是 ( )。 #include <iostream> using namespace std; clas Base { public: void fun() { cout<<"Base::fun"<<end1; } }; class Derived : public Base { void fun() { ________________//显示调用基类的函数 fun() cout<<"Derived::fun"<<end1; } };

    A.fun();

    B.Base.fun();

    C.Base::fun();

    D.Base->fun();


    正确答案:C
    解析:作用域分辨符号是“::”,它可以用来限定要访问的成员所在的类的名称。在派生类Derive的定义中显式调用基类的函数fun(),则只能借助于作用域分辨符“::”。

  • 第9题:

    有如下程序: include using namespace std; class Base { public:

    有如下程序: #include<iostream> using namespace std; class Base { public: void fun() { cout<<"Base::fun"<<endl; } }; class Derived: public Base { public: void tim() } ____________ cout<<"Derived:: fun"<<endl; } }; int main() { Derived d; d.fun(); return O; } 已知其执行后的输出结果为: Base::fun Derived::fun 则程序中下划线处应填入的语句是

    A.Base.fun();

    B.Base::fun();

    C.Base->fun();

    D.fun();


    正确答案:B
    解析:本题考查的知识点是继承的运用。题目中要求的两行输出结果分别在基类的成员函数fun()与派生类的成员函数fun()中给出,而主函数中只通过派生类对象d调用fun()函数,即只调用了派生类的成员函数fun()。所以,横线处应该填入对基类成员函数fun()的调用语句,此处只能使用作用域运算符“::”才能调用到基类中的同名函数,故应该选择B。

  • 第10题:

    有如下程序:includeusing namespace std;class BASE{public:~BASE(){cout<<"BASE";}}

    有如下程序: #include<iostream> using namespace std; class BASE{ public: ~BASE(){cout<<"BASE";} }; class DERIVED:public BASE{ public: ~DERIVED(){cout<<"DERIVED";} }; int main(){DERIVED x;return 0;} 执行后的输出结果是( )。

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:此题考查的是派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。

  • 第11题:

    在下列的程序的横线处填上适当的语句,使该程序的输出为12。include using namespace

    在下列的程序的横线处填上适当的语句,使该程序的输出为12。

    include<iostream.h>

    using namespace std;

    class Base

    {

    public:

    int a,b;

    Base(int i){a=i;}

    };

    class Derived:public Base

    {

    int a;

    public:

    Derived(int x):Base(x),b(x+1){};

    void show()

    {


    正确答案:eoutBase::a。
    eoutBase::a。 解析: 本题考查的是基类和派生类的构造函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。本题要求结果是输出12,分析题目,首先调用基类的构造函数,然后是调用子对象的构造函数,横线处要求输出基类成员a的值,填入toutBase::a即可。

  • 第12题:

    在下面横线上填上适当的语句,完成程序。include using namespace std; class Base { in

    在下面横线上填上适当的语句,完成程序。

    include<iostream>

    using namespace std;

    class Base

    {

    int x;

    public:

    Base(int i){x=i;}

    ~Base(){}

    );

    class Derived:public Base

    {

    public:

    ______//完成类Derive构造函数的定义

    };

    iht main()

    {

    Derived obj


    正确答案:Derived(int i;Base(i){}。
    Derived(int i;Base(i){}。 解析: 程序中,类Derived是基类Base的公有派生。在类Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化,

  • 第13题:

    有如下程序:include using namespace std;class Base{public:Base(){cout<<"BB"; f()

    有如下程序:#include <iostream>using namespace std;class Base{ public: Base(){cout<<"BB"; f(); } Void f(){cout<<"Bf"; }};class Derived: public Base{ public: Derived() { cout<<"DD"; } void f() { cout<<"Df"; }};int main() { Derived d; return 0; }执行上面的程序将输出( )。

    A.BBBfDD

    B.BBDfDDDf

    C.DD

    D.DDBBBf


    正确答案:A

  • 第14题:

    有如下程序: include using namespace std; class BASE { public

    有如下程序: #include<iostream> using namespace std; class BASE { public: ~BASE(){cout<<"BASE";} }; class DERIVED:public BASE { public: ~DERIVED(){cout<<"DERIVED";} }; int main(){DERIVEDx;retum 0;} 执行后的输出结果是

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:本题考查基类析构函数和派生类析构函数的调用次序。

  • 第15题:

    下列程序的输出结果为2,请将程序补充完整。 include using namespace std; class Basc

    下列程序的输出结果为2,请将程序补充完整。

    include<iostream>

    using namespace std;

    class Basc

    {

    public:

    【 】void fun(){cout<<1;}

    };

    class Dcrived:public Base

    {

    public:

    void fun(){cout<<2;}

    };

    int main()

    {

    Base*p=new Derived;

    p->fun();

    delete p;

    return 0;

    }


    正确答案:virtual
    virtual 解析:利用虚函数实现多态。

  • 第16题:

    有如下程序:include using namespace std;class BASE{public:~BASE(){cout<<"BASE";}

    有如下程序: #include <iostream> using namespace std; class BASE{ public: ~BASE(){cout<<"BASE";} }; class DERIVED:public BASE{ public: ~DERIVED(){cout<<"DERIVED";} }; int main(){DERIVED x;return 0;} 执行后的输出结果是

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:本题考核派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当main函数结束时,派生类DERIVED的对象x将被删除,那么派生类DERIVED的析构函数先被调用,输出DERIVED,然后调用基类的析构函数输出BASE。

  • 第17题:

    有如下程序:includeusing namespace std;class BASE{public:~BASE( ){cout<<"BASE";}

    有如下程序: #include<iostream> using namespace std; class BASE{ public: ~BASE( ){cout<<"BASE";} }; class DERIVED:public BASE{ public: ~DERIVED( ){cout<<"DERIVED";} }; int main( ){DERIVED x;return 0;} 程序的输出结果是

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:基类和派生类的析构函数的执行顺序是先执行派生类的析构函数,最后执行基类的析构函数;故先执行DIVERED的析构函数,后执行BASE的析构函数。

  • 第18题:

    下列程序的输出结果为2,请将程序补充完整。 include using namespace std; class Base

    下列程序的输出结果为2,请将程序补充完整。

    include<iostream>

    using namespace std;

    class Base

    {

    public:

    ______void fun(){cout<<1;}

    };

    class Derived:public Base

    {

    public:

    void fun(){cout<<2;}

    };

    int main()

    {

    Base*p=new Derived;

    p->fur();

    delete p;

    return 0;

    }


    正确答案:virtual
    virtual 解析:本题考核虚函数的概念。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际指向的对象类的那个重定义版本,这样的调用称为多态调用。基类Base和派生类Derived中都定义了成员函数fun,但是有不同的实现。程序最后输出的结果为2,表明通过对象指针p调用的函数版本为派生类中定义的,只有把基类的fun函数定义为虚函数,才能满足要求。

  • 第19题:

    有以下程序:include include using namespace std;class base{private: cha

    有以下程序: #include <iostream> #include <string> using namespace std; class base { private: char baseName[10]; public: base ( ) { strcpy (baseName, "Base"); } virtual char *myName() {

    A.DerivedBase

    B.BaseBase

    C.DerivedDerived

    D.BaseDerived


    正确答案:A
    解析:本题考核虚函数的应用。类Derived是从基类Base公有派生而来的。因此,Derived是基类Base的子类型。主函数中定义了一个基类对象bb和一个派生类对象dd。从程序中可看出,派生类Derived的对象dd交给了处理基类Base的对象的函数showPtr进行处理。由于在基类中函数myName被定义成虚函数,所以在函数showPtr中调用的myName函数为派生类的成员函数mySame,从而输出Derived。然后输出className,即基类名称Base。

  • 第20题:

    有以下程序:includeusing namespace std;class BASE{private: char c;public: BASE(c

    有以下程序: #include <iostream> using namespace std; class BASE { private: char c; public: BASE(char n):c(n);{} virtual~BASE() { cout<<c; } }; class DERIVED:public BASE { char c; p

    A.XY

    B.YX

    C.X

    D.Y


    正确答案:A
    解析:在C++中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数结束时,派生类DERIVED对象obj将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出X,然后调用基类的析构函数,输出Y。

  • 第21题:

    有下列程序: include using namespace std; class Base { public: Base(){cout<<"B

    有下列程序: #include<iosteram.h> using namespace std; class Base { public: Base(){cout<<"BB"; f(); } void f(){cout<<"Bf";} }; class Derived:public Base { public: Derived(){cout<<"D

    A.BBBfDD

    B.BBDfDDDf

    C.DD

    D.DDBBBf


    正确答案:A
    解析: 此题考查的是类的继承和派生。派生类执行构造函数的一般次序:首先调用基类构造函数;然后调用成员对象的构造函数;最后是派生类构造函数中的内容。题目中定义派生类对象d时,先调用基类Base的构造函数,输出BBBf,然后调用派生类Derived的构造函数,输出DD。

  • 第22题:

    请在如下程序中的空格处填写正确的语句: include using namespace std; class Base {

    请在如下程序中的空格处填写正确的语句:

    include <iostream>

    using namespace std;

    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() 解析:本题考查的知识点是:派生类对基类成员的访问。本题的派生类Derived覆盖了基类Base中的fun(),如需调用基类版本的fun(),则需要使用域运算符“::”。故应该填写Base::fun()。

  • 第23题:

    请在下列程序的横线处填写正确的语句。include using namespace std; class Base{ publ

    请在下列程序的横线处填写正确的语句。

    include<iostream>

    using namespace std;

    class Base{

    public:

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

    };

    class Derivde:public Base{

    public:

    void fun(){

    ______∥ 调用基类的函数


    正确答案:Base∷fun()
    Base∷fun() 解析: 此题考查的是派生类对基类成员的访问。本题中派生类Derived覆盖了基类Base中的fun(),如果需要调用基类中的fun(),则需要使用域运算符“∷”。故应填写Base∷fun()。