文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>const 成员变量的初始化

const 成员变量的初始化

时间:2011-03-01  来源:studycpp

//const.h#include<iostream>

class CConst
{
public:
CConst();

void print()
{
std::cout
<<"----"<<cs<<std::endl;
}
private:
const int cs;
};


//const.cpp#include"const.h"

CConst::CConst()
{
}

int main(int argc, char* argv[])
{
CConst
* a = new CConst();
a
->print();

return 0;
}

编译报错error C2758: 'cs' : must be initialized in constructor base/member initializer list

将const.cpp修改为:

#include"const.h"

CConst::CConst()
{
cs
= 0;
}

int main(int argc, char* argv[])
{
CConst
* a = new CConst();
a
->print();

return 0;
}

仍然报错:

error C2758: 'cs' : must be initialized in constructor base/member initializer list

修改为下面形式后,正常:

#include"const.h"

CConst::CConst():cs(
0)
{
//cs = 0;
}

int main(int argc, char* argv[])
{
CConst
* a = new CConst();
a
->print();

return 0;
}

原因是,const数据成员的初始化只能在类的构造函数的初始化表中进行,而中间那种实现之所以报错,是因为cs=0不是初始化,是赋值


相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载