对于一个类定义,下列叙述中错误的是( )。A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

题目

对于一个类定义,下列叙述中错误的是( )。

A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数

C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数


相似考题
更多“对于一个类定义,下列叙述中错误的是( )。A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造 ”相关问题
  • 第1题:

    对于一个类定义,下列叙述中错误的是

    A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。

    B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。

    C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数。

    D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。


    正确答案:B
    解析:本题考查的知识点是:构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。故本题应该选择B。

  • 第2题:

    如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclassobj=100;会( )

    A、调用拷贝构造函数

    B、调用整型参数的构造函数

    C、调用赋值运算符

    D、引起编译错误


    参考答案:B

  • 第3题:

    一个类如果没有定义任何函数,编译器不会自动为这个类产生()

    A、拷贝构造函数

    B、无参构造函数

    C、输出流运算符

    D、赋值运算符


    参考答案:C

  • 第4题:

    对于拷贝初始化构造函数,正确的描述是( )。

    A.在C++语言中,如果不自定义类的拷贝初始化构造函数,则每个类都有默认的拷贝初始化构造函数

    B.必须为每个类定义拷贝初始化构造函数

    C.如果要使用拷贝初始化构造函数,则必须在类中先定义

    D.当定义了类的构造函数时,如果要使用拷贝初始化构造函数,则必须定义拷贝初始化构造函数


    正确答案:A
    解析:拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它不能指定函数返回类型;只有一个参数,是同类的某个对象名的引用。每一个类中都必须有一个拷贝构造函数,如果类中未声明,编译器会自动生成一个公有的拷贝构造函数。

  • 第5题:

    下列类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

    class myClass{

    private:

    int data;

    public:

    myClass(int value);//构造函数

    myClass(const______another Object);//拷贝构造函数

    }


    正确答案:myClass&
    myClass& 解析:此题考查的是复制构造函数。复制构造函数定义的一般格式如下:类名::类名(const类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第6题:

    下列有关拷贝构造函数的描述中错误的是( )。

    A.拷贝构造函数是一种构造函数

    B.拷贝构造函数与一般的构造函数一样,可以设置多个形参

    C.每一个类中都必须有一个拷贝构造函数

    D.拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象


    正确答案:B
    B。【解析】拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它不能指定函数返回类型;只有一个参数,是同类的某个对象名的引用。每一个类中都必须有一个拷贝构造函数,如果类中未声明,编译器会自动生成一个公有的拷贝构造函数。

  • 第7题:

    如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

    Class myClass{

    private:

    int data;

    public:

    myClass(int value);//构造函数

    myClass(const【 】anotherObject);//拷贝构造函数

    }


    正确答案:myClass&
    myClass& 解析:本题考查的知识点是:拷贝构造函数。拷贝构造函数定义的一般格式如下:
    类名>::类名)(const类名>&引用对象名>)
    {
    //拷贝构造函数体
    }
    而在类中的声明部分则可省去类名>::。故本题应该填myClass&。

  • 第8题:

    如果一个类中没有定义任何构造函数时,系统会自动提供一个()构造函数;同样,类中没有定义析构函数时,系统会自动提供一个()析构函数。


    正确答案:默认;默认

  • 第9题:

    在Java中,下面对于构造函数的描述错误的是()。

    • A、类不一定要显式定义构造函数
    • B、构造函数的返回类型是void
    • C、如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
    • D、一个类可以定义多个构造函数

    正确答案:B,C

  • 第10题:

    多选题
    在Java中,下面对于构造函数的描述错误的是()。
    A

    类不一定要显式定义构造函数

    B

    构造函数的返回类型是void

    C

    如果构造函数不带任何参数,那么构造函数的名称和类名可以不同

    D

    一个类可以定义多个构造函数


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

  • 第11题:

    单选题
    下列关于拷贝构造函数的描述中,错误的是()。
    A

    一个类可以定义多个拷贝构造函数

    B

    若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数

    C

    当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝

    D

    拷贝构造函数中的参数按引用方式传递


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

  • 第12题:

    填空题
    如果一个类中没有定义任何构造函数时,系统会自动提供一个()构造函数;同样,类中没有定义析构函数时,系统会自动提供一个()析构函数。

    正确答案: 默认,默认
    解析: 暂无解析

  • 第13题:

    对于拷贝构造函数和赋值操作的关系,正确的是( )。

    A.拷贝构造函数和赋值操作是完全一样的操作

    B.进行赋值操作时,会调用类的构造函数

    C.当调用拷贝构造函数时,类的对象正在被建立并被初始化

    D.拷贝构造函数和赋值操作不能在同一个类中被同时定义


    正确答案:C
    解析: 在赋值操作中,将发生对象的拷贝操作,但并不说明两者是完全一样的。一般情况下,如果给类定义了赋值操作符,则应该同时定义合适的拷贝构造函数,除非系统默认生成的拷贝构造函数满足赋值操作。实际上,系统默认的拷贝构造函数仅仅将数据成员进行简单的对应赋值,而在多数特殊应用中,需要程序员重新定义拷贝构造函数。

  • 第14题:

    如果没有为一个类定义任何构造函数的情况下,下列描述正确的是()

    A、编译器总是自动创建一个不带参数的构造函数

    B、这个类没有构造函数

    C、这个类不需要构造函数

    D、该类不能通过编译


    参考答案:A

  • 第15题:

    对于一个类的定义,下列叙述中错误的是

    A.如果没有定义复制构造函数,那么编译器将生成一个复制构造函数

    B.如果没有定义默认的构造函数,那么编译器将一定生成一个默认的构造函数

    C.如果没有定义构造函数,那么编译器将生成一个默认的构造函数和一个复制构造函数

    D.如果已经定义了构造函数和复制构造函数,那么编译器不会生成任何构造函数


    正确答案:B

  • 第16题:

    关于拷贝初始化构造函数,描述不正确的是( )。

    A.拷贝初始化构造函数是类的成员函数,函数名与类名相同。

    B.函数只有一个参数,并且是对某个对象的引用

    C.每个类都必须有一个拷贝初始化构造函数。

    D.要定义拷贝初始化构造函数,必须指定返回类型


    正确答案:D
    解析:拷贝初始化构造函数也是一个构造函数,也没有返回类型。

  • 第17题:

    对于一个类定义,下列叙述中错误的是( )。

    A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

    B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数

    C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

    D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数


    正确答案:B
    本题考查构造函数和复制构造函数,如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数,如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。如果没有定义拷贝构造函数,编泽器将生成一个拷贝构造函数。

  • 第18题:

    关于拷贝初始化构造函数,正确的是( )。

    A.在C++语言中,如果不自定义类的拷贝初始化构造函数,则每个类都有默认的拷贝初始化构造函数

    B.必须为每个类定义拷贝初始化构造函数

    C.如果要使用拷贝初始化构造函数,则必须在类中先定义

    D.当定义了类的构造函数时,如果要使用拷贝初始化构造函数,则必须定义拷贝初始化构造函数


    正确答案:A
    解析: 拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它不能指定函数返回类型:只有一个参数,是同类的某个对象名的引用。每一个类中都必须有一个拷贝构造函数,如果类中未声明,编译器会自动生成一个公有的拷贝构造函数。

  • 第19题:

    在类定义时如果没有定义构造函数,编译系统会自动生成一个()。


    正确答案:构造函数

  • 第20题:

    下列关于拷贝构造函数的描述中,错误的是()。

    • A、一个类可以定义多个拷贝构造函数
    • B、若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数
    • C、当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝
    • D、拷贝构造函数中的参数按引用方式传递

    正确答案:A

  • 第21题:

    对于拷贝构造函数,正确的描述是()。

    • A、在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
    • B、必须为每个类定义拷贝构造函数
    • C、如果要使用拷贝构造函数,则必须在类中先定义
    • D、当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数

    正确答案:A

  • 第22题:

    单选题
    如果没有为一个类定义任何构造函数的情况下,下列描述正确的是()。
    A

    编译器总是自动创建一个不带参数的构造函数

    B

    这个类没有构造函数

    C

    这个类不需要构造函数

    D

    该类不能通过编译


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

  • 第23题:

    填空题
    在类定义时如果没有定义构造函数,编译系统会自动生成一个()。

    正确答案: 构造函数
    解析: 暂无解析

  • 第24题:

    单选题
    在C++中,编译系统自动为一个类生成缺省构造函数的条件是(  )。
    A

    该类没有定义任何有参构造函数

    B

    该类没有定义任何无参构造函数

    C

    该类没有定义任何构造函数

    D

    该类没有定义任何成员函数


    正确答案: B
    解析:
    如果一个类中定义了一个缺省的构造函数,则使用该函数;如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的共有缺省构造函数。