类的作用域
类的定义分为两步
- 编译成员的声明
- 知道类全部可见后才编译函数
在成员函数中进行名字查找的过程:
- 在函数内部查找名字的声明
- 第一步没有找到,则在类中继续查找
- 如果类内也没有,则在成员函数定义之前的声明中进行查找
如果外层对象被隐藏,可以使用域运算符进行访问即符号::
构造函数再探
使用构造函数对成员进行初始化
成员初始化顺序最好与参数列表顺序保持一致,且初始化成员时应避免有依赖关系。
explicit 关键字用于抑制构造函数定义的隐式转换
聚合类
当一个类满足下面条件就称为聚合类:所有成员为public,没有定义构造函数,没有类内初始值,没有基类也没有virtual函数
类的静态成员
通过static关键字实现
定义
class Account{
public:
static double rate(){return 0};
}
- 静态类成员,被所有类生成的对象公有
使用静态成员
double r;
r= Account::rate();