1.类是C++最重要的特征。 类就是定义了新的类型和作用域。类背后的思想是数据抽象和封装。
class X{...}; //类的定义
2.C++中,使用访问标号来定义类的抽象接口和实施封装。
public 构成了类对象的公用界面,程序所有部分可以访问public成员;
private 封装了类型的实现细节,非成员函数不可以访问。
3.成员函数可以被重载;在类内部定义的成员函数,自动作为inline处理,即被调用时,编译器将试图在一行内扩展该函数。不在类定义体内定义的inline成员函数,其定义通常应放在有类定义的同一头文件中。
4.将类的定义放在头文件中,可以保证在每个使用类的文件中以同样的方式定义类。
class X; //类的声明
5.在类的声明之后,定义之前,类X是一个不完全类型(incompete type),即已知X类型,不知道包含哪些成员。
不完全类型,不能定义对象,只能定义指向该类型的指针和引用,或用于使用作为函数返回类型和形参。
6.定义类对象时,为其分配存储空间。
X x1;//类对象定义
类定义以分号结束,是因为类定义之后可以接一个对象定义列表。
class X{} x1,x2,...; //通常不将对象定义在类定义之后。
7.成员函数具有一个附加的隐形形参,即指向该类对象的一个指针this,与调用成员函数的对象绑定在一起。
this指针的使用情况是,该函数返回对调用函数的对象的引用。
class X{
public:
X& move(); // 该函数返回 X& 表明该函数返回指向自身类对象的引用。
}
8.在普通的非const成员函数中,this是指向类类型的const指针。即可以改变this所指向的对象的值,但不能改变this所保存的地址。const指针值不能修改,意味着不能使其指向其他对象; //int *const ival。 能否使用该指针修改其所指向的对象的值,则完全取决于其所指向的对象的类型。
9.在const成员函数中,this指针的类型是 指向const对象的const指针,即:既不能通过this改变所指向的对象,也不能改变this所指向的对象,即this保存的地址。
10.基于成员函数是否为const,可以重载成员函数;同样,基于一个指针形参是否指向const,也可以重载函数。
11.类的const成员只能使用const成员函数, 非const成员则都可以使用,但非const版本是一个更好的匹配。
12.将可以修改的数据成员 声明为mutable。
未完...
类的作用域