分类: C/C++
2008-04-08 15:56:04
C++主题——static类成员
1.用static可以为类类型的所有对象所共有,像是全局对象,但又被约束在类类型的名字空间中。
2.可以实施封装,将其放在private或protected区域中。
3.static成员没有this指针,它不是任何一个对象的组成部分,推荐用“类名::static成员名调用”。
4.static成员函数声明时加上static关键字,在定义时不能加static关键字。
5.static成员函数不能使用const以修饰其不改变成员属性。
6.static成员函数不能使用virtual以修饰其虚拟性。
7.static数据成员声明时,写明static关键字,定义时不能加static关键字。
8.static const数据成员必须在类中声明并且初始化,然后在类定义之外再次进行定义,如:
class A
{
public:
static const int i = 30;
};
const int A::i;
但是这段代码在vc6下运行是通不过编译的,会报错。这是与标准不符的,想来是vc6开发时间较C++98早。
在GCC下,同样的代码是可以编译通过的。