Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
2-1232350095
И. Павел
2009-01-19 10:28
2009.03.01
Как правильно закрыть фрейм?


15-1230819583
Tinx
2009-01-01 17:19
2009.03.01
Восстановление забытого пароля для DBISAM


15-1230333042
Германн
2008-12-27 02:10
2009.03.01
Ошибка svchost


11-1197489271
!Pharaon!
2007-12-12 22:54
2009.03.01
ToolBar


15-1230450049
Dreamse
2008-12-28 10:40
2009.03.01
Вопрос про многоядерные процессоры и способы работы с ними




   Наверх