第六章 初始化与清除

简介:C++的安全性:初始化和清除。这两个概念是简化库的使用的关键所在。

6.1 用构造函数确保初始化

构造函数的名字与类的名字一样。

class X {

    int i;

public:

    X ( ) ; // 构造函数

}

传递到构造函数的第一个(秘密)参数是this指针,也就是调用这一函数的对象的地址。


构造函数和析构函数没有返回值

6.2 用析构函数确保清除

析构函数的语法与构造函数一样,用类的名字作为函数名。析构函数名字前加上(~),以和构造函数区别。

析构函数不带任何参数,因为析构不需任何选项。

class Y {

public:

~Y ( );

}

当对象超出它的作用域时,编译器将自动调用析构函数。

6.3 清除定义块

应该在尽可能靠近变量的使用点处定义变量,并在定义时就初始化。(出于安全性和可读性)

内存的分配是通过编译器向下移动堆栈指针来实现的。

6.4 带有构造函数和析构函数的Stash

6.5 带有构造函数和析构函数的Stack

6.6 集合初始化

struct Y {

float f;

int i;

Y(int a);

}

初始化:

Y y1[] = {Y(1), Y(2), Y(3)};

6.7 默认构造函数

即不带任何参数的构造函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容