以下关于C++中构造函数和析构函数的描述中,错误的是( )。

admin2019-06-12  25

问题 以下关于C++中构造函数和析构函数的描述中,错误的是(    )。

选项 A、构造函数的函数名必须与类名相同
B、构造函数的返回类型是void类型
C、析构函数无形参,也不可被重载
D、一个类只能有一个析构函数,但可以有多个构造函数

答案B

解析 在定义一个对象的同时,希望能给它的数据成员赋初值——对象的初始化。在特定对象使用结束时,还经常需要进行一些清理工作。C++程序中的初始化和清理工作分别由两个特殊的成员函数来完成,它们就是构造函数和析构函数。
    构造函数是与类名相同的,在建立对象时自动调用的函数。如果在定义类时,没有为类定义构造函数,编译系统就生成一个默认形式的隐含的构造函数,这个构造函数的函数体是空的,因此默认构造函数不具备任何功能。构造函数是类的一个成员函数,除了具有一般成员函数的特征之外,还归纳出如下特殊的性质:
    (1)构造函数的函数名必须与定义它的类同名。
    (2)构造函数没有返回值。如果在构造函数前加void是错误的。
    (3)构造函数被声明定义为公有函数。
    (4)构造函数在建立对象时由系统自动调用。
    析构函数也译作拆构函数,是在对象消失之前的瞬间自动调用的函数,析构函数具有以下特点:
    (1)析构函数没有任何参数,不能被重载,但可以是虚函数,一个类只有一个析构函数。
    (2)析构函数没有返回值。
    (3)析构函数名与类名相同,但在类名前加上一个逻辑非运算符“~”,以示与构造函数对比区别。
    (4)析构函数一般由用户自己定义,在对象消失时由系统自动调用,如果用户没有定义析构函数,系统将自动生成一个不做任何事的默认析构函数。
转载请注明原文地址:https://kaotiyun.com/show/pECZ777K
0

随机试题
最新回复(0)