gpt4 book ai didi

c++ - 从函数返回本地对象

转载 作者:IT王子 更新时间:2023-10-28 23:32:58 25 4
gpt4 key购买 nike

这是从函数返回对象的正确方法吗?

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));

我收到一个错误,“获取临时地址”。我应该这样使用吗:

Car &getCar(string model, int year) {
Car c(model, year);
return c;
}

最佳答案

getCar 按值返回一个Car,这是正确的。

您不能将该返回值(它是一个临时对象)传递给 displayCar,因为 displayCar 需要一个 Car&。您不能将临时对象绑定(bind)到非常量引用。您应该更改 displayCar 以获取 const 引用:

void displayCar(const Car& car) { }

或者,您可以将临时变量存储在局部变量中:

Car c = getCar("Honda", 1999);
displayCar(c);

但是,最好让 displayCar 采用 const 引用,因为它不会修改对象。

不要返回对本地 Car 变量的引用。

关于c++ - 从函数返回本地对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com