niusouti.com

单选题下列关于派生类构造函数和析构函数的说法中,错误的是(  )。A 派生类的构造函数会隐含调用基类的构造函数B 如果基类中没有缺省构造函数,那么派生类必须定义构造函数C 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

题目
单选题
下列关于派生类构造函数和析构函数的说法中,错误的是(  )。
A

派生类的构造函数会隐含调用基类的构造函数

B

如果基类中没有缺省构造函数,那么派生类必须定义构造函数

C

在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

D

在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数


相似考题
更多“单选题下列关于派生类构造函数和析构函数的说法中,错误的是(  )。A 派生类的构造函数会隐含调用基类的构造函数B 如果基类中没有缺省构造函数,那么派生类必须定义构造函数C 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数”相关问题
  • 第1题:

    下列关于派生类的构造函数的叙述中,正确的是( )。

    A.派生类通过成员初设列表的方法调用基类的构造函数,实现对基类的初始化

    B.派生类构造函数的调用顺序先基类后子对象构造函数

    C.派生类构造函数的调用顺序先子对象构造函数后基类,

    D.派生类构造函数是不能继承基类的


    正确答案:C

  • 第2题:

    下列有关析构函数的调用顺序是( )。

    A.先执行基类的构造函数,然后执行派生类的析构函数

    B.先执行派生类的构造函数,然后执行基类的构造函数

    C.析构函数在派生类与基类中同时执行。

    D.只执行派生类的构造函数,不执行基类的构造函数


    正确答案:B
    解析:先执行派生类的构造函数,然后执行基类的构造函数。

  • 第3题:

    在一个派生类对象结束其生命周期时,下列叙述中正确的是( )。

    A. 先调用基类的析构函数,后调用派生类的析构函数

    B.先调用派生类的析构函数,后调用基类的析构函数

    C.如果基类没有定义析构函数,则只调用派生类的析构函数

    D.如果派生类没有定义析构函数,则只调用基类的析构函数


    参考答案:B

  • 第4题:

    生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。

    A) 无需任何条件

    B) 基类中显示定义了构造函数

    C) 派生类中显式定义了构造函数

    D) 派生类构造函数明确调用了基类构造函数

    A.

    B.

    C.

    D.


    正确答案:A

  • 第5题:

    下列关于派生类的构造函数的说法中,哪个是错误的 ______。

    A.派生类不继承基类的构造函数和赋值运算

    B.派生类的构造函数可以调用基类的构造函数

    C.派生类的构造函数先于基类的构造函数执行

    D.在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象中的基类成员


    正确答案:C

  • 第6题:

    生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。

    A.无需任何条件

    B.基类中显式定义了构造函数

    C.派生类中显式定义了构造函数

    D.派生类构造函数明确调用了基类构造函数


    正确答案:D
    D。【解析】派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。

  • 第7题:

    下列关于派生类构造函数和析构函数的说法中,错误的是( )。

    A.派生类的构造函数会隐含调用基类的构造函数

    B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数

    C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

    D.在撤销派生类对象时,先调用基类的析构函数,再调用派生类的析构函数


    正确答案:D

  • 第8题:

    多继承派生类构造函数构造对象时,()被最先调用。

    • A、派生类自己的构造函数
    • B、虚基类的构造函数
    • C、非虚基类的构造函数
    • D、派生类中子对象类的构造函数

    正确答案:B

  • 第9题:

    在创建派生类对象时,构造函数的执行顺序是()

    • A、对象成员构造函数―基类构造函数―派生类本身的构造函数
    • B、派生类本身的构造函数―基类构造函数―对象成员构造函数
    • C、基类构造函数―派生类本身的构造函数―对象成员构造函数
    • D、基类构造函数―对象成员构造函数―派生类本身的构造函数

    正确答案:D

  • 第10题:

    单选题
    在创建派生类对象时,构造函数的执行顺序是()
    A

    对象成员构造函数―基类构造函数―派生类本身的构造函数

    B

    派生类本身的构造函数―基类构造函数―对象成员构造函数

    C

    基类构造函数―派生类本身的构造函数―对象成员构造函数

    D

    基类构造函数―对象成员构造函数―派生类本身的构造函数


    正确答案: C
    解析: 暂无解析

  • 第11题:

    单选题
    在一个派生类对象结束其生命周期时(  )。
    A

    先调用派生类的析构函数后调用基类的析构函数

    B

    先调用基类的析构函数后调用派生类的析构函数

    C

    如果基类没有定义析构函数,则只调用派生类的析构函数

    D

    如果派生类没有定义析构函数,则只调用基类的析构函数


    正确答案: B
    解析:
    释放派生类对象时,析构函数的执行顺序是:①调用派生类自身的析构函数;②调用类成员对象的析构函数;③调用基类的析构函数。

  • 第12题:

    单选题
    多继承派生类构造函数构造对象时,()被最先调用。
    A

    派生类自己的构造函数

    B

    虚基类的构造函数

    C

    非虚基类的构造函数

    D

    派生类中子对象类的构造函数


    正确答案: A
    解析: 暂无解析

  • 第13题:

    对于派生类的构造函数,在定义对象时构造函数的执行顺序:先执行调用______的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。


    正确答案:基类
    基类 解析: 对于派生类的构造函数,在定义对象时构造函数的执行顺序:先执行调用基类的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。所以本题填:基类。

  • 第14题:

    使用VC6打开考生文件夹下的工程test2_1,此工程包含一个源程序文件test2_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:

    调用基类BASE的构造函数:1

    调用基类BASE的构造函数:2

    调用派生类A的构造函数:3

    调用派生类A的析构函数

    调用基类BASE的析构函数

    调用基类BASE的析构函数

    源程序文什test2_1.cpp清单如下:

    include<iostream.h>

    class BASE

    {

    public:

    BASE(int i){cout<<"调用基类BASE的构造函数:"<<i<<endl;}

    ~BASE(){cout<<"调用基类BASE的析构函数"<<endl;)

    /***************** found *****************/

    }

    class A:public BASE

    {

    public:

    /***************** found *****************/

    A(int a,int b):i(a),b(b)

    {cout<<"调用派生类A的构造函数:"<<a+b<<endl;}

    ~A(){cout<<"调用派生类A的析构函数"<<endl;)

    private:

    BASE b;

    };

    void main()

    {

    /****************found***************/

    BASE obj(1,2);

    }


    正确答案:(1)错误:类BASE的定义缺少“;” 正确:}; (2)错误:A(int aint b):i(a)b(b) 正确:A(intaintb):BASE(a)b(b) (3)错误:BASE obj(12); 正确:A obj(12);
    (1)错误:类BASE的定义缺少“;” 正确:}; (2)错误:A(int a,int b):i(a),b(b) 正确:A(inta,intb):BASE(a),b(b) (3)错误:BASE obj(1,2); 正确:A obj(1,2); 解析:(1)主要考查考生对于类的定义的掌握,类定义结束后大括号外面不能缺少分号;
    (2)主要考查考生对于派生类构造函数的掌握,该函数应该实现将参数传递给基类的功能,即派生类的构造函数应使用参数列表的形式将基类的数据成员初始化,初始化的时候直接使用基类的名称(BASE)而不是基类中变量的名称(i);
    (3)主要考查考生对于基类和派生类函数调用关系的掌握,要调用派生类的构造函数必须使用派生类的对象,构造函数只有在该类的对象被使用的时候才会被调用。

  • 第15题:

    下列关于派生类构造函数和析构函数的叙述中,错误的是

    A.派生类的构造函数会隐含调用基类的构造函数

    B.如果基类中没有默认构造函数,那么派生类必须定义构造函数

    C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

    D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数


    正确答案:D
    解析:在通常情况下,派生类和基类的构造函数的执行顺序为:先执行基类的构造函数,然后执行派生类的构造函数;当撤销派生类对象时,先执行派生类的析构函数,随后再执行基类的析构函数。

  • 第16题:

    下列关于派生类的构造函数的叙述中,正确的是( )。

    A.派生类通过成员初设列表的方法调用基本类的构造函数,实现对基本类的初始化

    B.派生类构造函数的调用顺序先基类后子对象构造函数

    C.派生类构造函数的调用顺序先子对象构造函数后基类

    D.派生类构造函数是不能继承基类的


    正确答案:C

  • 第17题:

    派生类构造函数的调用顺序是先调用( )。

    A.派生类的构造函数

    B.基类的构造函数

    C.派生类的析构函数

    D.基类的析构函数


    正确答案:B
    解析:派生类在构造时,先调用基类的构造函数。

  • 第18题:

    下面关于构造函数和析构函数的描述,错误的是( )。

    A)析构函数中调用虚函数采用静态联编

    B)对虚析构函数的调用可以采用动态联编

    C)当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

    D)构造函数可以声明为虚函数


    正确答案:D

  • 第19题:

    对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用__________的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容


    正确答案:
    基类 【解析】对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用基类的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。所以本题填:基类。

  • 第20题:

    下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()

    • A、基类构造函数—>对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员
    • B、基类构造函数—>派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数
    • C、派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数—>基类构造函数
    • D、对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员—>基类构造函数

    正确答案:A

  • 第21题:

    派生类调用各个构造函数的顺序和调用析构函数的顺序相反。


    正确答案:正确

  • 第22题:

    单选题
    下列关于派生类构造函数和析构函数的说法中,错误的是(  )。
    A

    派生类的构造函数会隐含调用基类的构造函数

    B

    如果基类中没有缺省构造函数,那么派生类必须定义构造函数

    C

    在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

    D

    在撤销派生类对象时,先调用基类的析构函数,再调用派生类的析构函数


    正确答案: D
    解析:
    在撤销派生类对象时,析构函数的执行过程和构造函数严格相反。先调用派生类析构函数,再调用基类析构函数。

  • 第23题:

    单选题
    生成派生类对象时,派生类构造函数调用基类构造函数的条件是(  )。
    A

    无需任何条件

    B

    基类中显示定义了构造函数

    C

    派生类中显式定义了构造函数

    D

    派生类构造函数明确调用了基类构造函数


    正确答案: D
    解析:
    因为派生类从基类中继承,它含有基类中的数据成员和函数成员,所以当生成派生类对象时,能无条件的调用基类的构造函数。