假设您正在 C++ 中实现一个列表数据类型。你的这个列表会将项目保存在一个简单的数组中,并将保存类型为:“动物”的实例。
例如,addItem 方法将是这样的:
void MyAnimalList::insertAnimal(Animal a){
animalArray[currentPosition] = a;
currentPosition++;
}
因此,我们在 List 实现中只是有一个 currentPosition,当我们向其中添加一个新 Animal 时,Animal a 现在在“currentPosition”中的 animalArray 中被引用,然后 currentPosition 增加。
我的问题是关于retrieveItem。这两个之间有什么区别:
void MyAnimalList::getTheLastAddedAnimal(Animal &a){
a = animalArray[currentPosition-1];
}
Animal MyAnimalList::getTheLastAddedAnimal(){
return animalArray[currentPosition-1];
}
显然,第二种方法将被称为:
Animal lastAddedAnimal = myAnimalList.getTheLastAddedAnimal();
第一个应该被称为:
Animal someAnimal;
myAnimalList.getTheLastAddedAnimal(someAnimal);