Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.05;
Скачать: CL | DM;

Вниз

Уничтожение объекта   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-1207290424
Ega23
2008-04-04 10:27
2008.10.05
Почкму ругается на GO???


2-1219738954
Lexa11_2002
2008-08-26 12:22
2008.10.05
Как в String запихать ctrl+B


2-1219902669
vvrz
2008-08-28 09:51
2008.10.05
несколько колонок в QReport


3-1207230280
ANB
2008-04-03 17:44
2008.10.05
Оракл : как попользовать в запросе два with ?


2-1219648273
Razrab7
2008-08-25 11:11
2008.10.05
Как указать путь к папке, где лежит exe-шник?