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
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
相关文章推荐
- How to initialize a static const map in c++?
- How to initialize a static const map in c++?
- 'static' can indeed be used in C++ to create a Static Member Function
- (ros/navigation)how to build a map using logged data 怎样用记录的数据创建地图
- How to declare and initialize a static const array as a class member?
- error C2491 definition of dllimport static data member not allowed(不允许dllimport静态数据成员的定义)
- How to create a hex dump from binary data in C++
- static constructors in C++? need to initialize private static objects
- How to use the System Restore API to save and to restore system data in Visual C++
- How to transform our data into TFRecord(怎样将自己的图片数据转换成TF的格式)
- how to force global variable which define in a static library to initialize?
- C++的类 (新增 static成员数据初始化,纯虚函数,抽象类)
- C++ | static const integral data member在类中的初始化
- How To Load CSV Machine Learning Data in Weka (如何在Weka中加载CSV机器学习数据)
- 【原创】在DataFormWebPart中将列表附件显示为图片(二)[How to display list item attachments as image in DFWP Part 2]
- Fatal error: Call to a member function getData() on a non-object in /data/php/framework/exts/zii/wid
- How to submit data in InfoPath form services
- How to know is the file exist in C++ - 在C++中如何判断文件是否存在
- How to use insert or retrieve data by using Core Data in iOS
- C++必须使用【初始化列表】初始化数据成员的三种情况