Можно ли использовать аргументы по умолчанию со списками инициализации членов?
Vector3::Vector3(double xI, double yI, double zI)
: x(xI=0), y(yI=0), z(zI=0)
{
}
Конструктор всегда устанавливает x, y и z в 0, даже если вы вызываете его с установкой аргументов.
Vector3(double xI=0, double yI=0, double zI=0);
Vector3::Vector3(double xI, double yI, double zI)
: x(xI), y(yI), z(zI)
{
}
Кроме того, если вам интересно, что делает ваш код, он просто устанавливает ваши параметры равными 0, а затем передает их значение (теперь 0) для инициализации членов.
Оператор присваивания =
всегда возвращайте то, что он назначил левой переменной, в вашем случае он возвращает 0
которые присваиваются x
,y
а также z
,