Возможно ли инициализировать переменную из параметра return (по ссылке ref)? Скажем, у меня есть что-то вроде:C++ - Инициализировать переменную, передав ссылку на функцию?
Car c; // <- don't want to create a new Car here!
if (findCar("beetle", c)) {
...
}
где, если findCar
успешно, она возвращает истину, и заполняет c
:
bool findCar(string name, Car& out) {
...
// return true if found
out = thecar;
return true;
}
Теперь мой класс автомобиля не имеет конструктора 0-аргумент, так что выше код не компилируется. Есть ли способ сохранить c
неинициализированным до звонка до findCar
?
Solutions Я думал, являются:
- добавить дешевый конструктор 0-аргумент для автомобиля
- переключатель к указателям (который я предпочел бы избежать)
, почему вы хотите, чтобы избежать переключений к указателям? Это самый чистый путь. – akappa