首页 > 试题广场 >

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

[单选题]

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

  • 构造函数可以重载
  • 构造函数名同类名
  • 带参数的构造函数具有类型转换作用
  • 在类对象构造时,构造函数是编译器自动调用的
推荐
选C
【分析】

A选项:构造函数可以被重载,析构函数不可以被重载。正确
B选项:C++构造函数的函数名必须和类名相同。正确
C选项:转换构造函数只有一个参数,如果有多个参数的,它就不是转换构造函数。至于类型转换函数 ,它的作用是将一个类的对象转换成另一类型的对象。错误
D选项:类是一种用户自定义的类型,声明一个类对象时,编译程序需要为对象分配存储空间,进行必要的初始化,C++中这项工作由构造函数来完成。所以每创建一个对象,系统自动调用一次构造函数。正确
编辑于 2019-03-11 14:11:05 回复(1)
更多回答
c 单参、不带explicit的构造函数具有类型转换作用。
d 处于继承关系中的类实例化时,继承链上的父类构造函数由系统自动调用。
发表于 2019-03-08 16:08:18 回复(1)
C
【分析】该题该选项是在混淆转换构造函数类型转换函数的区别。
类型转换函数的作用是将一个类的对象转换成另一个类型的数据
转换构造函数是单参数的构造函数,它可以将一个指定类型的数据转换为类的对象,但是不能反过来将一个类的对象转换为一个其他类型的数据。构造函数是没有类型转换作用的。

        而选项D:当类对象被创建时,如果未重载构造函数,则系统会自动生成一个构造函数。此时编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作
综上所述,选项C是错误的,选C
编辑于 2019-03-08 18:40:52 回复(0)
带参数的构造函数可以被用于进行类型转换,但是它们并不具有通常意义上的类型转换作用。构造函数用于创建对象并初始化对象,当使用构造函数进行类型转换时,实际上是用指定的参数来构造一个新的临时对象,并将其作为返回值使用。因此,在这种情况下,我们通常将构造函数称为转换构造函数,它们并不是真正意义上的类型转换。

类型转换函数的作用是将一个类的对象转换成另一个类型的数据
转换构造函数是单参数的构造函数,它可以将一个指定类型的数据转换为类的对象,但是不能反过来将一个类的对象转换为一个其他类型的数据。构造函数是没有类型转换作用的。

发表于 2023-10-18 21:40:10 回复(0)
不严谨的烂题屏蔽了
发表于 2021-08-05 11:20:16 回复(0)
通常把有一个参数的构造函数用作类型转换,称其为转换构造函数,但是有一个参数的构造函数也可以不用于类型转换;此外,转换构造函数只能有一个参数,如果有多个参数,就不是转换构造函数了,因为这个时候无法知道该把哪个参数进行转换
发表于 2021-05-07 10:58:18 回复(0)
这个B选项,俺没看懂~求解
发表于 2020-08-28 20:16:23 回复(1)
C
构造函数初始化赋值作用,没听说过有类型转换作用。 而且构造函数也没有返回类型   
发表于 2019-03-08 17:29:46 回复(0)

C D 都有点问题?

构造函数也可以由程序员在重载的构造函数中调用吧?构造函数不具有类型转换的作用吧,只是对结构体进行初始化的一些操作。

发表于 2019-03-08 16:03:17 回复(0)
c
构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数。
发表于 2019-03-08 15:03:46 回复(0)
d
发表于 2019-03-08 14:36:24 回复(0)