Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

Вниз

звільнення пам'яті Знайти схожі гілки


Frozzen   (2004-11-24 18:31) [0]

Подскажите как правельно делать, имеется

TCoordPoint = class (TObject)
x, y: integer;
lat, long: real;
r: real;
....
end;

TPoints = object
    p   : array of TCoordPoint;
    Count : Integer;
    constructor Create(N : Integer);
    destructor Destroy;

...
end;

constructor TPoints.Create(N : Integer);
починати
 Count := N;
 SetLength(p, N);
end;

destructor TPoints.Destroy;
var i: Integer;
починати
for i := 0 to Count-1 do
  p[i].Destroy;            // или не так
SetLength(p, 0);
end;



Digitman ©   (2004-11-24 18:42) [1]

for i := 0 to Count-1 do
 p[i].Destroy;            // это вдан.случае не вызывает сомнений

SetLength(p, 0); //а это. пожалуй, лишнее

непонятно только, почему для сей цели используется не слишком удобный дин.массив, а не специально разработанный для побобных целей класс TObjectlist ..



Плохиш ©   (2004-11-24 19:05) [2]


> Digitman © (24.11.04 18: 42) [1]
> for i := 0 to Count-1 do
>  p[i].Destroy;            // это вдан.случае не вызывает сомнений

.Free



Frozzen   (2004-11-24 19:10) [3]

Вот и я про Free думал



Dimaxx ©   (2004-11-24 22:08) [4]

Destroy и Free абсолютно идентичны по функциональности.



ЮЮ ©   (2004-11-25 03:47) [5]

>Destroy и Free абсолютно идентичны по функциональности.

Однако ОСВОБОДИТЬ звучит более гуманно, чем УНИЧТОЖИТЬ :)



begin...end ©   (2004-11-25 09:12) [6]


> [4] Dimaxx ©   (24.11.04 22:08)

> Destroy и Free абсолютно идентичны по функциональности.

Но Free всё же безопасней, чем Destroy, за счёт предварительной проверки на NIL.

Странно другое:

> Frozzen   (24.11.04 18:31)

> TPoints = об'єкт    



Bel ©   (2004-11-25 10:06) [7]

И еще странность:

> TCoordPoint = class(TObject)

Может, лучше запис использовать.
А если всё-таки нужен клас, то тогда где конструкторы элементов массива.



Frozzen   (2004-11-25 10:17) [8]

Все методы не писал сюда



Bel ©   (2004-11-25 11:19) [9]

Ну тогда ничего криминального. Только добавить в конструкторе:

...
for i := 0 to N - 1 do
  p[i] :=  TCoordPoint.Create;


А лучше воспользоваться > Digitman © (24.11.04 18: 42) [1]



сторінки: 1 вся гілка

Форум: "Основна";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.84 MB
Час: 0.05 c
1-1101888371
Yurij-7
2004-12-01 11:06
2004.12.12
Логін в мережі


1-1101658158
dimson301
2004-11-28 19:09
2004.12.12
Error creating form в Design Time


1-1101886141
маркерів
2004-12-01 10:29
2004.12.12
База даних


1-1101491736
AlexHawk
2004-11-26 20:55
2004.12.12
Як зробити титри


9-1091894388
new developer
2004-08-07 19:59
2004.12.12
масив в масиві





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська