首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

诸位大神帮帮忙

2013-04-21 
各位大神帮帮忙~各位大神~谁可以帮我看看下面的程序为什么编译不成功啊,无限感激~程序:class X{ private:i

各位大神帮帮忙~
各位大神~谁可以帮我看看下面的程序为什么编译不成功啊,无限感激~
程序:
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修饰的类成员;
三,需要初始化引用成员数据;

热点排行