![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
![]()
Всем привет!
После четной надежды на ответ в теме tList с указателями на методы я решил создать сею тему, к вопросу которой я перешёл в выше упомянутой теме, т.к. одна тема — один вопрос ![]() Вопрос в следующем: Экспериментируя с вызовом методов, указатели которых находились в tList я обнаружил, что public и published методы всех экземпляров одного и того же класса (или объекта, не знаю, как правильно), не важно, выделена ли под них (экземпляры классов) память, или нет, имеют один и то-то же адрес, не равный Nil. Вот я и хочу, что-бы вы мне это объяснили, почему так происходит? Надеюсь, что в этой теме кто-то прольёт свет на эту загадку... |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Обратите внимание на структуру:
Код:
Таким образом в TList придется хранить структуру или использовать два TList или хранить только адрес, а экземпляр подставлять потом. Код:
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
А почему собственно должно быть иначе? Это свойство ООП - каждый раз при создании объектов память выделяется только под поля (уже не помню как со свойствами). Делфи это компилятор и после компиляции код НЕ ИЗМЕНЯЕТСЯ, поэтому код всегда находится на одном месте. А методу пофигу какие данные обрабатывать и по идеи его можно наколоть и подсунуть вообще левые. Сделать же так Вы не можете не потому что не компилица, а потому что компилятор это отслеживает, теоретические же это вполне возможно (но глупо с точки зрения ООП).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
![]()
Ну, в общем как-бы ясно. Спасибо что помогли...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
численные методы | Desha | Помощь студентам | 2 | 24.05.2009 12:46 |
Delphi: Public vs Published | Jean-Esther | Помощь студентам | 1 | 07.03.2009 15:42 |
методы в ООП | albatros | Общие вопросы Delphi | 3 | 04.02.2009 22:59 |
Методы... | Arkuz | Свободное общение | 6 | 11.10.2008 16:53 |
Методы автозагрузки | Лубышев | Операционные системы общие вопросы | 12 | 01.07.2008 20:53 |