Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];
ВнизЗапись элементов в динамический массив. Найти похожие ветки
← →
parasolka (2011-04-06 12:36) [0]Доброго времени суток. Есть динамический массив элементов определённого класса.
dinArray: array of myClass;
Как записать в массив не указатель, а сам объект типа myClass?
← →
Медвежонок Пятачок © (2011-04-06 12:38) [1]никак. сам объект это и есть указатель
← →
И. Павел © (2011-04-06 15:24) [2]> [0] parasolka (06.04.11 12:36)
Вы лучше скажите - какую цель хотите этим достичь. Тогда будет понятно - что вам порекомендовать.
← →
sniknik © (2011-04-06 19:15) [3]> сам объект это и есть указатель
ну, это если он объектом объект называет, а ну как его "определённый класс" это рекорд? ;)
> какую цель хотите этим достичь. Тогда будет понятно - что вам порекомендовать.
цель коммунизм! что порекомендуешь? :)
← →
Ega23 © (2011-04-06 19:45) [4]
> цель коммунизм! что порекомендуешь? :)
Вот это:
http://ru.wikipedia.org/wiki/2%D0%9065
← →
_Юрий (2011-04-06 20:10) [5]В общем то, если заморочиться, то можно записать и сам объект в массив.
Перекрыв NewInstance так, чтобы вернулся буфер из массива.
Но для этого надо иметь достаточно веские причины.
Услышим ли мы описание причин от автора ветки?
← →
И. Павел © (2011-04-07 08:07) [6]> [4] Ega23 © (06.04.11 19:45)
Сейчас уже точечными залпами не обойтись. Нужны массовые аргументы:
http://ru.wikipedia.org/wiki/%D0%9F%D1%83%D0%BB%D0%B5%D0%BC%D1%91%D1%82_%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0
← →
Leon-Z © (2011-04-07 10:23) [7]Вам верно нужно так:
var
dinArray: array of myClass;
i: Integer;
myClassInst: myClass;
begin
// устанавливаем размер массива = 10 элементам
SetLength(dinArray, 10);
// наполняем массив указателями на экземпляры класса
// сами объекты в Delphi всегда динамические, поэтому
// вегда обращение к ним идет через указатель, хотя явно,
// как в Pascal мы не разименовываем их.
for i := 0 to 9 do
begin
myClassInst := myClass.Create;
dinArray[i] := myClassInst;
end;
// вызываем метод myClass вот так например:
for i := 0 to 9 do
dinArray[i].Vizvat_Metod_myClass(x, y, z);
end;
← →
Ega23 © (2011-04-07 10:30) [8]
> Вам верно нужно так:
А зачем нужна переменная myClassInst?for i := 0 to 9 do
dinArray[i] := myClass.Create;
← →
Leon-Z © (2011-04-07 10:36) [9]
> Ega23 © (07.04.11 10:30) [8]
Чтобы понятнее было. Вопрос задан явно новичком. :)
← →
Dennis I. Komarov © (2011-04-07 11:05) [10]
> var dinArray: array of myClass;dinArray: array of pointer;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c