Ist dies der richtige Weg, um ein Objekt von einer Funktion zurückzugeben?Rückgabe eines lokalen Objekts aus einer Funktion
Car getCar(string model, int year) {
Car c(model, year);
return c;
}
void displayCar(Car &car) {
cout << car.getModel() << ", " << car.getYear() << endl;
}
displayCar(getCar("Honda", 1999));
Ich bekomme einen Fehler, "die Adresse von temporären". Sollte ich diesen Weg verwenden:
Car &getCar(string model, int year) {
Car c(model, year);
return c;
}
Sie können auch das temporäre speichern, ohne den Kopierkonstruktor aufzurufen (was in 'Car c = getCar (...)' geschieht, indem Sie einen Verweis auf const verwenden: 'const Car & c = getCar (...)', wenn Sie nicht "0" müssen später Änderungen durch "c" vornehmen. –