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

c++类中静态成员的初始化

2015-03-06 23:11 525 查看

使用c++时,我们有时会在类中设置静态成员,静态成员属于类,而不属于类具象化之后的某一对象。其初始化与一般类内成员有所区别。

方法一:类内初始化 要求静态函数是const或constexpr 类型的。例如,对于静态成员static int j; 如果采用static int j=10的初始化方法是错误的,需要保证j是常量表达式,应采用static constexpr int j=10的方式初始化。

方法二:类外初始化 看下面一个例子

首先,创建了一个含有静态成员的类test

#include <iostream>

class test{

public:

//构造函数

test();

test(int a):i(a){}

//拷贝构造函数

test(test &a){i=a.i;}

//拷贝赋值操作符

test&operator=(test &a){i=a.i;return *this;}

//析构函数

~test(){};

//成员函数

void showi(){std::cout<<i<<std::endl;}

void showj(){std::cout<<j<<std::endl;}

private:

//成员

int i;

//静态成员

static int j;

};



在使用类之前,先对静态成员进行初始化,注意要用test::表明静态成员的命名空间,并且不能含有static

int test::j; //或者int test::j=10;

int main()

{

test a(2);

a.showi();

a.showj();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: