how to initialize Static data member in C++ (怎样初始化类的static数据成员)

来源:互联网 发布:python笔试题及答案 编辑:程序博客网 时间:2024/05/16 05:43

The declaration of a static data member in the member list of a class is not adefinition. You must define the static member outside of the class declaration, in namespace scope. For example:
 class X
 {
 public:
       static int i;
 };
 int X::i = 0; // definition outside class declaration


If a static data member is of const integral orconst enumeration type, you may specify aconstant initializer in the static data member's declaration. This constant initializer must be an integral constant expression. Note that the constant initializer is not a definition. You still need to define the static member in an enclosing namespace. The following example demonstrates this:

#include <iostream>
 using namespace std;

 struct X {
   static const int a = 76;
 };

 const int X::a;

 int main() {
   cout << X::a << endl;
 }


The tokens = 76 at the end of the declaration of static data membera is a constant initializer.


REFERENCE:

http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/cplr038.htm


原创粉丝点击