在Java中,我们可以这样写:
public class Demo{
private int val;
public Demo(int val){this.val = val;}
public Demo(){this(0);}
}但是,它在C++中不起作用:
class Demo{
private:
int _val;
public:
Demo(int val):_val(val){}
Demo(){this(0);}
}如何修改此代码?
发布于 2014-01-11 17:42:40
对于C++11,您可以使用委托构造函数:
Demo():Demo(0){ }发布于 2014-01-11 17:43:47
class Demo{
private:
int _val;
public:
Demo(int val):_val(val){}
Demo() :_val(0) {}
}或
class Demo{
private:
int _val;
public:
Demo(int val):_val(val){}
Demo() :Demo(0) {}
}发布于 2014-01-11 17:49:51
或者,当有很多成员需要初始化(在C++11之前)时,这种方法很有用:
class Demo{
private:
int _val;
void Init( int val )
{
_val = val;
}
public:
Demo(int val){Init(val);}
Demo(){Init(0);}
}https://stackoverflow.com/questions/21060747
复制相似问题