Не в C ++ 03, но последняя версия C ++ позволяет делегировать конструкторам:
Quaternion() : Quaternion(0.0, V3(0.0,0.0,0.0)) { }
В делегирующем конструкторе список инициализатора должен иметь ровно один элемент, которыйэто другой конструктор (и, очевидно, не должно быть никаких циклических ссылок).
До C ++ 11 вы действительно не можете обойтись без копирования / вставки, если вы действительно хотите инициализировать ваши ученики прямо в конструкторе.Может быть, вы хотели бы использовать аргументы по умолчанию, хотя?Некоторые люди возражают против этих ....
explicit Quaternion(double s = 0.0, V3 v = V3(0.0,0.0,0.0)) { /* ... */ }