类的静态成员

在实际中遇到如下问题:

class CC {
#pragma region Method
public:
	static void Method1();
private:
	static void Method2();

#pragma endregion Method

#pragma region Property

	static int p1= 3;
	static int p2;
	static short p3[...][...];
	
#pragma endregion Property
};

编译后出现error1:p1变量必须为常量才可以在类内部初始化。变量分为声明和定义。对

于类的静态成员声明和定义必须分离,即在类的内部声明但是必须在类的外部进行这也不

是绝对的,就像错误提示告诉我们,当一个静态成员为常量时则可以在类的内部完成声明

与定义的工作。

...
static const int p1 = 3;
...

 

同理p2变量需要在类的外部进行定义。p3静态数组成员或是指针也要在类的外部进行定义。

Type Class::PropertyName
在这里如下
int CC::p2 = 3;
short CC::p3[][];

 

最后记住静态成员是在类的范围内共享的,而独立与类的实例。

posted on 2010-04-06 21:30  非常笑  阅读(165)  评论(0编辑  收藏  举报

导航