すべてのクラスが実際に参照であるJavaでは、次のようにします。
Car getCar(int mileage)
{
Car car = new Car();
car.setMileage(mileage);
return car;
}
C ++では、どうすればこれを行うことができますか?私はそれを参照に入れることができます:
void getCar(int mileage, Car& car)
{
car.setMileage(mileage);
return true;
}
または、新しいオブジェクトを作成できます。
Car* getCar(int mileage)
{
Car* car = new Car;
car.setMileage(mileage);
return car;
}
ただし、呼び出し元は削除する責任もありcar
ます。
ポインタを返したくありません。車を返却したい:
Car getCar(int mileage)
{
Car car;
car.setMileage(mileage);
return car;
}
ただし、もちろん、car
関数が終了すると削除されるローカル変数です。
これを行うための一般的な「標準的な」方法は何ですか?どちらが最善の方法であり、その理由は何ですか?