Списки инициализации членов с аргументами по умолчанию

Можно ли использовать аргументы по умолчанию со списками инициализации членов?

Vector3::Vector3(double xI, double yI, double zI)
: x(xI=0), y(yI=0), z(zI=0)
{
}

Конструктор всегда устанавливает x, y и z в 0, даже если вы вызываете его с установкой аргументов.

1

Решение

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) для инициализации членов.

5

Другие решения

Оператор присваивания = всегда возвращайте то, что он назначил левой переменной, в вашем случае он возвращает 0которые присваиваются x,y а также z,

0

По вопросам рекламы [email protected]