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

本文介绍了在C++中如何正确地声明和定义静态成员变量。包括基本的定义方式、常量初始化以及在不同作用域中的定义规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值