您的位置:首页 > 编程语言 > C语言/C++

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

2011-08-09 13:08 736 查看
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 a
constant 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐