C++构造函数与析构函数

构造函数:

构造函数与普通成员函数一样,可以在类中直接定义,也可在类中说明原型,在类外定义。

注意:

(1)构造函数的名字与类名相同。

(2)构造函数无返回值,连void都不能有。

(3)构造函数只能在创建对象时由系统调用。

(4)若定义的类要说明该类的对象时,构造函数必须是公有的,若定义的类仅用于派生其他类时,则可将构造函数定义为保护的。

(5)构造函数可以不带参数,也可以带若干个参数,也可以制定参数的默认值。当定义多个构造函数时,必须满足函数重载规则,即所带的参数个数或参数类型不同。

初始化表:

构造函数也可以通过初始化表初始化数据成员,初始化表位于参数表和函数体之间,以“:”开头,由多个以逗号分隔的初始化项构成。

注意:

(1)常值数据成员,对象成员,从基类继承来的数据成员等特殊成员的初始化必须采用初始化表。

(2)带有初始化表的构造函数被调用时,先执行初始化表,后执行函数体。

(3)每个类必须至少有一个构造函数,没有构造函数,就不能创建任何对象。

(4)只要一个类定义了一个构造函数,系统就不再提供默认的构造函数。这样,当为类定义了一个带参数的构造函数时,若还需要使用无参构造函数,则必须自己定义。

析构函数:

用来完成对象被撤销前的清理工作。

注意:

(1)析构函数名必须与类名相同,并在其前面加上字符“~”,以便与构造函数区别。

(2)析构函数没有返回值,函数名前也不能用关键字void。

(3)没有参数,即析构函数是唯一的,无法重载。

猜你喜欢

转载自blog.csdn.net/hahaandhehe/article/details/79596966