首页 > 试题广场 >

构造函数和析构函数的主要作用是什么?它们各有什么特性?

[问答题]

构造函数和析构函数的主要作用是什么?它们各有什么特性?


推荐
构造函数是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。构造函数的名字必须与类名相同,而不能由用户任意命名。它可以有任意类型的参数,但不能具有返回值类型。它不需要用户来调用,而是在建立对象时自动执行。

构造函数具有一些特性:

(1)构造函数的名字必须与类名相同,否则编译程序将把它当作一般的成员函数来处理

(2)构造函数没有返回值,在定义构造函数时,是不能说明它的类型的,甚至说明为 void类型也不行。

(3)构造函数的函数体可写在类体内,也可写在类体外。

(4)构造函数的作用主要是用来对对象进行初始化,用户根据初始化的要求设计函数体和函数参数。在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句,但是,为了保持构造函数的功能清晰,一般不提倡在构造函数中加人与初始化无关的内容。

(5)构造函数一般声明为公有成员,但它不需要也不能像其他成员函数那样被显式地调用,它是在定义对象的同时被自动调用的,而且只执行一次。

(6)在实际应用中,通常需要给每个类定义构造函数。如果没有给类定义构造函数,则编译系统自动地生成一个默认构造函数。

析构函数也是一种特殊的成员函数。它执行与构造函数相反的操作,通常用于执行一些清理任务,如释放分配给对象的内存空间等。析构函数有以下一些特点:
(1)析构函数名与类名相同,但它前面必须加一个波浪号(~)。

(2) 析构函数不返回任何值。在定义析构函数时,是不能说明它的类型的,甚至说明为 void类型也不行。

(3) 析构函数没有参数,因此它不能被重载。一个类可以有多个构造函数,但是只能有一个析构函数

(4) 撤销对象时,编译系统会自动地调用析构函数。

发表于 2018-05-05 21:16:44 回复(0)