C++ でリスト データ型を実装しているとします。あなたのこのリストは、アイテムを単純な配列に保持し、タイプ「動物」のインスタンスを保持します。
たとえば、addItem メソッドは次のようになります。
void MyAnimalList::insertAnimal(Animal a){
animalArray[currentPosition] = a;
currentPosition++;
}
したがって、単純に List 実装に currentPosition があり、それに新しい Animal を追加すると、Animal が「currentPosition」の animalArray で参照され、currentPosition が増加します。
私の質問はretrieveItemについてです。これら2つの違いはありますか:
void MyAnimalList::getTheLastAddedAnimal(Animal &a){
a = animalArray[currentPosition-1];
}
Animal MyAnimalList::getTheLastAddedAnimal(){
return animalArray[currentPosition-1];
}
明らかに、2 番目のメソッドは次のように呼び出されます。
Animal lastAddedAnimal = myAnimalList.getTheLastAddedAnimal();
最初のものは次のように呼び出す必要があります。
Animal someAnimal;
myAnimalList.getTheLastAddedAnimal(someAnimal);