第12章 类
1. 构造函数
类的构造函数一般使用一个初始化列表来初始化对象的数据成员。
2. 成员函数
在类内部声明成员函数是必须的,而定义成员函数则是可选的。在类内部定义的函数默认为inline。而在类外部定义的成员函数必须指明它们是在类的作用域内。
成员函数有一个附加的隐含实参,将函数绑定到调用函数的对象。这个隐含的实参其实是this指针。对像的this指针并不是对象本身的组成部分,它不占对象的内存空间,在每次非static成员函数调用对象的时候,this指针作为隐藏的第一个参数由编译器传递给对象。
将关键字const 加在形参表之后,就可以将成员函数声明为常量:
如:
double avg_price() const;
const成员不能改变其所操作的对象的数据成员。const必须同时出现在声明和定义中,若只出现在一处,就会出现一个编译时错误。
3. 数据抽象与封装
4. 类的声明与定义
类的定义放在头文件件中是一个很好的做法。
可以声明一个类而不定义它:
如:class Screen;
这个声明也称为前向声明,在声明之后定义之前,这个类是一个不完全类型,即已知类型却不知道包含哪些成员。
5. 类对象
定义类是定义了一种新的类型,定义了类型之后就可以定义该类型的对象。定义对象的时候要为对象分配存储空间,但定义类型的时候是不进行存储分配的。
6. 类成员的显示初始化
对于没有定义构造函数并且其全体数据成员均是public的类可以采用与初始数组元素相同的方式初始化其成员。
这个地方所说的其实就是struct。在C++中struct和class一样都是定义一个类。在C++中允许这种形式的初始化其实就是为了对C程序实现兼容。
因为在C中可以对struct进行显示的初始化。
构造函数
友元
Static成员变量和成员函数
第13章 复制控制
每种类型,无论是内置类型还是类类型,都对该类型对象的一组操作的含义进行了定义。每种类型还定义了创建该类型的对象时会发生什么——构造函数定义了该类 型对象的初> 始化。类型还能控制复制、赋值或撤销该类型的对象时会发生什么——类通过特殊的成员函数:复制构造函数、赋值操作符和析构函数类控制这些行为。
- 复制构造函数
- 赋值操作
- 析构函数
第14章 重载操作符与转换