我有这个类X
,使用委托构造函数我只想将值更改i
为j
0。可以这样做吗?
class X{
public:
X() = default;
X(int ival, int jval) : i{ ival }, j{ jval } {}
X(int new_i) : i{ new_i }, X(i, 0) {} //error here
private:
int i;
int j;
};
int main()
{
X x{ 345, 54 };
x = X{ 34 }; //annoymous copy changes only the i:member
return 0;
}
编辑:我知道X(int new_int) : X{new_int, 0}
会起作用,但我想知道如果在列表中再初始化一个变量会出现什么错误。
可能我有另一个z
,我想用i
and初始化它j
。
IEX(int new_i) :z{ new_i }, X(new_i, 0) {}