![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
BlackNightFear |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: ![]() ![]() ![]() |
Блин, наитупейший вопрос с моей стороны, но надеюсь Вы сможете мне помочь...
В общем имеется некий класс: Код type TMyClass = class x : integer; end ... var Form1 : TForm1 ... MyClass1 : TMyClass; ..... TForm1.OnCreate: MyClass1 := TMyClass.Create; Вопрос! Как на TMyClass создать указатель? Вообще задача ставится так: создать массив из указателей на экземпляры класса (ну в принципе если получится создать один указатель, то и массив из таковых создать будет не проблема, я так думаю...) Кстати, экземпляры класса, это насколько я понимаю что-то вроде нескольких копий этого класса? Как можно создать экземпляр класса? Что-то вроде: Код arr: array [0..10] of TMyClass; это то что мне нужно? И ещё! Массив классов это является корректным решением или нет? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
BlackNightFear
Цитата Вообще задача ставится так: создать массив из указателей на экземпляры класса Это делается так: Код type PTMyClass = ^TMyClass; TMyClass = class x : integer; end; Var arr: array [0..10] of PTMyClass; А для чего это вообще нужно? Может есть более подходящее решение... Хотя (из справки по Дельфи) Цитата Every class (and therefore every component) is really a pointer. The compiler automatically dereferences class pointers for you, so most of the time you do not need to think about this. The status of classes as pointers becomes important when you pass a class as a parameter. In general, you should pass classes by value rather than by reference. The reason is that classes are already pointers, which are references; passing a class by reference amounts to passing a reference to a reference. Сообщение отредактировано: volvo - 27.11.2004 18:15 |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 17:19 |