这是从函数返回对象的正确方法吗?
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));@H_301_4@我得到一个错误,“采取临时地址”.我应该用这种方法吗
Car &getCar(string model,year); return c; }
解决方法
getCar返回一个Car值,这是正确的.
@H_301_4@因为displayCar需要一个Car& amp;,所以不能把这个临时对象的返回值传递给displayCar.您不能将临时绑定到非常量引用.您应该更改displayCar以获取const引用:
void displayCar(const Car& car) { }@H_301_4@或者,您可以将临时存储在本地变量中:
Car c = getCar("Honda",1999); displayCar(c);@H_301_4@但是,由于它不会修改对象,因此最好让displayCar引用一个const引用. @H_301_4@不要返回对本地Car变量的引用.