C++构造函数与析构函数(一)

来源:互联网 发布:pla 算法初始化 编辑:程序博客网 时间:2024/03/29 10:16

当声明一个 对象时,对象的状态(数据成员的取值)是不确定的。但对象表达了现实世界的实体,因此,一旦声明对象,必须有一个有意义的初始值。C++语言中有一个称为构造函数的特殊成员函数,它可自动进行对象的初始化,还有一个析构函数在对象撤销时执行清理任务,进行善后处理。

构造函数和析构函数是类中的两个特殊的成员函数,具有普通成员函数的许多共同特性,但还具有一些独特的特性,可以归纳成一下几点:

(1)它们都没有返回值说明,也就是定义构造函数和析构函数时不能指出函数返回值的类型,即使是void也不能有;

如果它们有返回值,要么编译器必须知道如何处理返回值,要么就只能由客户程序员自己来显式的调用构造函数与析构函数,这样一来,安全性就被人破坏了。

(2)它们不能被继承;

(3)和大多数C++函数一样,构造函数可以有默认参数;

(4)析构函数可以是虚的,但构造函数不可以是虚的;

(5)不可取它们的地址;

(6)不能用常规调用方法调用构造函数,当使用完全的限定名(带对象名、类名和函数名)时可以调用析构函数。比较特殊地是,在对象数组中,初始化数组元素时可以显式调用成员函数;

(7)当定义对象时,编译程序自动调用构造函数;当删除对象时,编译程序自动调用析构函数;

阅读全文
0 0
原创粉丝点击