7 类
- const 成员函数,表示this 是一个指向常量的指针。常量对象以及常量对象的引用或指针都只能调用常量成员函数。
- this 的目的总是指向“这个”对象,所以this是一个常量指针,我们不允许改变this中保存的地址。
- 只有当类没有声明任何构造函数时,编译器才会自动的生成默认构造函数
- 构造函数,会在对象被创建的时候自动被调用,构造函数不能声明为const。一个scope内的对象的空间在进入scope的时候就分配了,但是构造函数只有在运行到那一行才会执行。
- 拷贝构造函数
- 析构函数,被析构之前自动调用的函数,析构函数可能要收回一些动态分配的空间等。new & delete 要合理搭配使用。
- 类可以允许其他类或者函数访问它的非公有成员,friend。每个类负责控制自己的友元类或者友元函数,一个类中的友元声明的作用是影响访问权限,它本身并非普通意义上的声明。友元关系不具有传递性
- 构造函数的初始值有时必不可少,比如类成员中有引用或者const 常量。最好令构造函数的初始值的顺序与成员声明保持一致。尽量避免使用某些成员初始其他成员。成员的初始化顺序与它们在类定义中出现的顺序一致。
- 编译器只会执行一次自动的类型转换。
- 在要求隐式转换的程序上下文中,我们可以用explicit关键字加以阻止。explicit构造函数只能用于直接初始化,或者强转。
- 有时我们希望修改某个数据成员,即使在const成员函数内,我们可以通过在变量之前加mutable。
- 通过区分成员函数是否是const的,可以对其进行重载。
- 对于c :static 具有数据持久存储和函数限制访问特性。
- 对于c++:static 成员变量属于类,static成员函数只能访问static成员变量。static变量就是是全局变量,具有全局属性。static成员函数中this是不可用的。一般不在类的内部初始化static变量。
- static成员需要在它被定义的地方初始化。
- Java没有全局变量
- 前向申明