[編集1-3番目のポインター構文を追加しました(ありがとうAlex)]
DALにはどの方法を選びますか、またその理由は次のとおりです。
Car& DAL::loadCar(int id) {}
bool DAL::loadCar(int id, Car& car) {}
Car* DAL::loadCar(int id) {}
車が見つからない場合、最初のメソッドはnullを返し、2番目のメソッドはfalseを返します。
2番目のメソッドは、ヒープ上にCarオブジェクトを作成し、データベースから照会されたデータを入力します。おそらく(私のC ++は非常に錆びています)、それは次の行に沿ったコードを意味します:
Car& DAL::loadCar(int id)
{
Car *carPtr = new Car();
Car &car= *carPtr;
car.setModel(/* value from database */);
car.setEngineSize(/* value from database */);
// etc
return car;
}
ありがとう