Monday, June 18, 2007

static class member

inline函数必须在调用它的每个文本文件中被定义, 所以没有在类体中定义的内联成员函数必须放在类定义出现的头文件中.

静态数据成员只有一份, 由该类类型的所有对象共享访问. 静态数据成员在该类定义之外被初始化.静态成员的名字必须被其类名限定修饰. 与全局对象一样, 静态成员在程序中也只能提供一个定义, 初始化不应该放在头文件中, 而是应该放在含有类的非inline函数定义的文件中.

作为特例, 整型的const静态数据成员可以在类体中用一常量初始化.

静态数据成员的特有属性:

1. 静态数据成员的类型可以是其所属类, 而非static的数据成员只能被声明为该类的对象的指针或者引用.

2. 静态数据成员可以被作为类成员函数的缺省实参, 而非static成员不能.

静态成员函数的声明除了在类体中的函数前加上关键字static, 以及不能声明为const或volatile. 出现在类体外的函数定义不能指定关键字static.

静态成员函数没有this指针.

No comments: