私はこのクラスを持っています。委譲コンストラクターを使用して、値のみを0としてX
変更したいのですが、それは可能ですか?i
j
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}
は動作することを知っていますが、リスト内のもう 1 つの変数を初期化した場合のエラーを知りたいと思いました。
私は別のものを持っている可能性があり、それをとz
とともに初期化したいと思います。i
j
すなわちX(int new_i) :z{ new_i }, X(new_i, 0) {}