Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
ВнизУничтожение объекта Найти похожие ветки
← →
Nucer (2008-08-24 13:33) [0]Правильно ли в данном случае будут уничтожены объекты?
TGameObjectType=(gtRobot,gtSupply);
TGameObject = class(TObject)
...
gType:TGameObjectType;
...
constructor Create(gType:TGameObjectType);
end;
TRobot = class(TGameObject)
...
end;
TSupply = class(TGameObject)
...
end;
var
m:array of TGameObject;
begin
SetLength(m,2);
m[0]:=TRobot.Create;
m[1]:=TSupply.Create;
...
for i:=low(m) to high(m) do m[i].Free;
end;
Или обязательно делать вот так:for i:=low(m) to high(m) do case m[i].gType of
gtRobot:(m[i] as TRobot).Free;
gtSupply:(m[i] as TSupply).Free;
end;
Помогите разобраться.
И еще вопрос, возможно ли определить подкласс объекта без введения дополнительной переменной gType?
← →
{RASkov} © (2008-08-24 13:37) [1]> for i:=low(m) to high(m) do m[i].Free;
Правильно.
> И еще вопрос, возможно ли определить подкласс объекта без
> введения дополнительной переменной gType?
См ClassName, ClassType у TObject....
← →
{RASkov} © (2008-08-24 13:40) [2]> Или обязательно делать вот так:
> for i:=low(m) to high(m) do case m[i].gType of
> gtRobot:(m[i] as TRobot).Free;
> gtSupply:(m[i] as TSupply).Free;
> end;
Это вообще бред....)gType:TGameObjectType;
вTGameObject
скорее НЕ нужен чем нужен.... Или тогда потомки не нужны, хотя тут мало инфы, чтоб судить об этом...
← →
Nucer (2008-08-24 13:43) [3]Спасибо за ответы.
>gType:TGameObjectType; в TGameObject скорее НЕ нужен чем нужен....
>Или тогда потомки не нужны, хотя тут мало инфы, чтоб судить об этом...
Просто я не знал про ClassName и ClassType, поэтому пришлось ввести TGameObjectType.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c