/* 主题:静态常量成员变量的初始化: 书名:<<The C++ Standard Library -A Tutorial and Reference>> P25 (2.2.8 Initialization of Contants Static Members) ******************************************************************* It is now possible to initialize integral constant static members inside the class structure. This is useful when the constants is used in the class structure after the initialization. (对于当这个常量会在初始化后要使用的情况,这样做会比较有效) For example ===> class MyClass{ static const int NUM = 100; int elements[NUM]; ... }; Note that you still have to to define space for a constant static member that is initialized within a class definition: const int MyClass::NUM; //no initialization here */ #pragma warning(disable:4530) #include <iostream> using namespace std; class A { public: A(){ for(int i=0; i<SIZE; i++) num[i] = i; } void print(){ for(int i=0; i<SIZE; i++) cout<<num[i]<<" "<<endl; } private: static const SIZE = 10; //注意:由于SIZE作为一个const常量,所以必须在首次定义的时候就给它赋值。 int num[SIZE]; }; const int A::SIZE; //注意:由于SIZE作为一个类的静态成员,应该在类体外部定义(以取得和全局变量类似的效用) int main() { A a; a.print(); return 0; }
|