构造函数和析构函数的主要作用是什么?它们各有什么特性?
构造函数具有一些特性:
(1)构造函数的名字必须与类名相同,否则编译程序将把它当作一般的成员函数来处理
(2)构造函数没有返回值,在定义构造函数时,是不能说明它的类型的,甚至说明为 void类型也不行。
(3)构造函数的函数体可写在类体内,也可写在类体外。
(4)构造函数的作用主要是用来对对象进行初始化,用户根据初始化的要求设计函数体和函数参数。在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句,但是,为了保持构造函数的功能清晰,一般不提倡在构造函数中加人与初始化无关的内容。
(5)构造函数一般声明为公有成员,但它不需要也不能像其他成员函数那样被显式地调用,它是在定义对象的同时被自动调用的,而且只执行一次。
(6)在实际应用中,通常需要给每个类定义构造函数。如果没有给类定义构造函数,则编译系统自动地生成一个默认构造函数。
(2) 析构函数不返回任何值。在定义析构函数时,是不能说明它的类型的,甚至说明为 void类型也不行。
(3) 析构函数没有参数,因此它不能被重载。一个类可以有多个构造函数,但是只能有一个析构函数
(4) 撤销对象时,编译系统会自动地调用析构函数。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
构造函数具有一些特性:
(1)构造函数的名字必须与类名相同,否则编译程序将把它当作一般的成员函数来处理
(2)构造函数没有返回值,在定义构造函数时,是不能说明它的类型的,甚至说明为 void类型也不行。
(3)构造函数的函数体可写在类体内,也可写在类体外。
(4)构造函数的作用主要是用来对对象进行初始化,用户根据初始化的要求设计函数体和函数参数。在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句,但是,为了保持构造函数的功能清晰,一般不提倡在构造函数中加人与初始化无关的内容。
(5)构造函数一般声明为公有成员,但它不需要也不能像其他成员函数那样被显式地调用,它是在定义对象的同时被自动调用的,而且只执行一次。
(6)在实际应用中,通常需要给每个类定义构造函数。如果没有给类定义构造函数,则编译系统自动地生成一个默认构造函数。
(2) 析构函数不返回任何值。在定义析构函数时,是不能说明它的类型的,甚至说明为 void类型也不行。
(3) 析构函数没有参数,因此它不能被重载。一个类可以有多个构造函数,但是只能有一个析构函数
(4) 撤销对象时,编译系统会自动地调用析构函数。