Текущий архив: 2009.03.01;
Скачать: CL | DM;
ВнизПоменять местами два объекта Найти похожие ветки
← →
н083нький (2009-01-19 02:55) [0]Всем привет, я новенький, возник вопрос.
Есть массив объектов (экземпляров класса). Я их всех в цикле об-Create-ил. Теперь мне надо поменять местами 2 элемента. Например, чтоб на месте пятого элемента стоял шестой, а на месте шестого - пятый. Как это сделать с объектами? заранее спасиб0.
← →
Германн © (2009-01-19 03:01) [1]
> Например, чтоб на месте пятого элемента стоял шестой, а
> на месте шестого - пятый. Как это сделать с объектами? заранее
> спасиб0.
>
А при чём тут объекты?
← →
p177-bu11 inno 69 (2009-01-19 03:05) [2]значит нет разницы, что с объектами?
var
b: TStudent;
ar: array of TStudent;
//......
b := ar[5];
ar[5] := ar[6];
ar[6] := b;
//......
так правильно будет? Ничего, что там объекты используются?
← →
Германн © (2009-01-19 03:10) [3]
> p177-bu11 inno 69 (19.01.09 03:05) [2]
>
> значит нет разницы, что с объектами?
>
> var
> b: TStudent;
> ar: array of TStudent;
> //......
> b := ar[5];
> ar[5] := ar[6];
> ar[6] := b;
> //......
>
> так правильно будет? Ничего, что там объекты используются?
>
Правильно. И объекты тут ни при чём.
Но "учебник" лучше всё-таки иметь под рукой.
← →
н083нький (2009-01-19 03:12) [4]согласен :) спасиб0
← →
Юрий Зотов © (2009-01-19 06:29) [5]> н083нький (19.01.09 03:12) [4]
Любая объектная переменная, даже если она является элементом массива (да и вообще чем угодно) фактически представляет собой типизированный указатель. Это означает, что она хранит в себе не сам объект, а его адрес в памяти; сам же объект хранится отдельно (по этому адресу) и ни про какие там переменные даже и не знает ничего (тем более, что их может быть и не одна, а сколько угодно).
Поэтому в Вашем массиве реально хранятся не сами объекты, а их адреса в памяти. То есть, обыкновенные целые числа.
Что из этого следует - видимо, уже ясно.
:о)
Страницы: 1 вся ветка
Текущий архив: 2009.03.01;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.004 c