1.extern关键字:
extern的意思就是引用,extern后面可以是变量名或者函数名,表示引用一个变量或者函数,在链接的时候需要从外部符号表中查找这个变量的定义。
2.类的静态成员变量:
[1]类的静态成员变量是属于类本身,而非某个实例。
[2]必须在类外初始化,意思就是说不能创建一个对象,用这个对象去初始化那个静态变量。
[3]可以通过类名访问静态成员变量,例如初始化(int A::value = 0;)。
3.类的静态成员函数:
[1]静态成员函数是和该类相关,但是和类的实例无关。
[2]静态成员函数可以访问静态成员变量和静态成员函数,但是不能访问非静态成员函数和非静态成员变量。因为非静态成员是属于某个实例的,没有实例便没有初始化内存,所以访问是非法的。
[3]可以通过类名调用静态成员函数。这个是很有用的,否则必须创建一个对象来调用类里面的函数。
[4]调用非静态成员函数时,会传递一个this指针(表示调用者对象本身),但是调用静态成员函数时,不存在this指针。
4.const关键字:
[1]类的成员函数后面加const,表示这个函数不能修改这个类的成员变量。其实就是给这个成员函数的this添加了const属性。
[2]如果一个对象创建的时候是const,则这个对象只能调用类的const成员函数(例如创建对象时:const ca a;)。
[3]非成员函数后面是不能加const的,也不能加volatile。
5.类的成员访问权限:
[1]private:private表示成员只属于本类。可以在类的内部访问或者外部函数实现中访问,不能通过对象访问。任何继承,在派生类中都不可以访问private成员。
[2]protect:可以在类的内部访问或者外部函数实现中访问,不能通过对象访问。
[3]public:可以在类的内部访问或者外部函数实现中访问,可以通过对象访问。
6.类的继承之后的成员访问权限:
[1]public继承:相当于把基类中的public拷贝到了派生类的public中,基类中的protect拷贝到了派生类的protect中。
[2]protect继承:相当于把基类中的public和protect拷贝到了派生类的protect中。
[3]private继承:相当于把基类中的public和protect拷贝到了派生类的private中。