我正在尝试创建一个维护 CRITTER 对象数组的 CONTAINER 类(我已经创建并测试了它。请注意,有各种 CRITTER 亚种,它们继承自 CRITTER 超类)。目的是从这个数组中添加和删除 CRITTER 对象。这是 CONTAINER 类的样子:
class
CONTAINER
create
make
feature
num: detachable INTEGER
list: ARRAY[CRITTER]
make
local
do
create list.make_empty
num := 0
end
addCritter(critter: CRITTER)
do
list.put(animal, num)
num := num + 1
end
removeCritter(critter: CRITTER)
do
list.put (list.at (num), ???) -- put last element in position of element to be removed
list.remove_tail (num) -- remove tail
num := num - 1
end
end
两个问题:首先,我可以在 APPLICATION 中实例化 CONTAINER 类,但是当我调用
create container.make
container.addCritter(myCritter)
我在第二行得到一个先决条件,无效索引违规错误。这可能是因为我没有设置数组的上限和下限。但是,当我尝试这样做时,会出现语法错误。解决这个问题的方法是什么?
其次,为了从数组中删除一个对象,如果我能掌握索引值会有所帮助,但我看不到任何这样做的函数,除非我遗漏了一些东西。