读书人

诸位大神帮帮忙

发布时间: 2013-04-21 21:18:07 作者: rapoo

各位大神帮帮忙~
各位大神~谁可以帮我看看下面的程序为什么编译不成功啊,无限感激~
程序:
class X
{ private:
int a;
int b;
const int c;

public:

void setA(int i){a=i;}
X(int i);
X();
X(int i, int j, int k);
void setC(int k) const ;
};
X::X():a(0),b(0){}
X::X(int i):a(i){}
X::X(int i,int j,int k):a(i),b(j),c(k){}
int main()
{
X x1;
X x2(2) ;
X x3(1,2,3) ;
x1.setA(3) ;
return 0 ;
}


编译错误信息;
:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lcj1\h\s.cpp(15) : error C2758: 'c' : must be initialized in constructor base/member initializer list
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lcj1\h\s.cpp(5) : see declaration of 'c'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lcj1\h\s.cpp(16) : error C2758: 'c' : must be initialized in constructor base/member initializer list
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lcj1\h\s.cpp(5) : see declaration of 'c'
[解决办法]
'c' : must be initialized in constructor base/member initializer list
c 必须在构造函数的成员初始化列表中初始化。
X::X():a(0),b(0),c(0){}
X::X(int i):a(i),c(0){}
[解决办法]
Lippman的《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表:
一,需要初始化的数据成员是对象的情况;
二,需要初始化const修饰的类成员;
三,需要初始化引用成员数据;

读书人网 >C++

热点推荐