类的静态成员
在实际中遇到如下问题:
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[][];
最后记住静态成员是在类的范围内共享的,而独立与类的实例。