Вниз
Скачать: CL | DM;

Как узнать создан ли объект   Найти похожие ветки 

← →
Foccer ©   (2006-06-10 09:16) [0]

У меня проблема. Не могу узнать создан ли тот или иной объект?


← →
tesseract ©   (2006-06-10 09:24) [1]

if MyObject<> nil then .......


← →
GanibalLector ©   (2006-06-10 10:33) [2]

if Assigned(обьект)


← →
tesseract ©   (2006-06-10 10:37) [3]


> GanibalLector ©   (10.06.06 10:33) [2]

тоже самое, фактически.


← →
palva ©   (2006-06-10 10:39) [4]

Если программистом не соблюдается некоторая дисциплина работы с объектом, то никак не узнать.


← →
tesseract ©   (2006-06-10 10:54) [5]


> Если программистом не соблюдается некоторая дисциплина работы
> с объектом, то никак не узнать.

То что объект создан - легко, а вот то, что не разрушен - другой вопрос.


← →
Reindeer Moss Eater ©   (2006-06-10 11:35) [6]

if Assigned(обьект)
if MyObject<> nil then .......


Этот код не в состоянии ответить на вопрос, создан ли объект.


← →
tesseract ©   (2006-06-10 11:36) [7]

Assigned делает то-же самое. Как правило этот метода работоспособен, то-что объект, при условии объёвления его в глобальной переменной,  был создан - определит.


← →
Reindeer Moss Eater ©   (2006-06-10 11:40) [8]

Assigned проверяет ссылку а про сам объект он ничего не знает и знать не может.
Вот если конструктор класса завершился без исключения, то можно с большой долей уверенности сказать, что объект который он пытался создать - создан.


← →
tesseract ©   (2006-06-10 11:52) [9]


> Assigned проверяет ссылку а про сам объект он ничего не
> знает и знать не может.

Если объект объявлен, как глобальная переменная, то при страте программы указатель на него выставляется в nil. в случае локальной переменной этого утверждать нельзя.


> Вот если конструктор класса завершился без исключения, то
> можно с большой долей уверенности сказать, что объект который
> он пытался создать - создан.


это подтверждаю, но узнать создан ли объект УЖЕ, этим невозможно, если объект уже создан и вызван новый конструктор, переменной будет присвоена ссылка на  новый объект.


← →
Reindeer Moss Eater ©   (2006-06-10 11:55) [10]

Просто автора ветки интересует совсем не тот вопрос, который он задал.


← →
tesseract ©   (2006-06-10 11:57) [11]


> У меня проблема. Не могу узнать создан ли тот или иной объект?

Почему, всё явно, он хочет узнать доступен ли объект для операций с ним.


← →
Reindeer Moss Eater ©   (2006-06-10 11:58) [12]

Тогда конструктор без эксепшена - ответ на его вопрос.


← →
Reindeer Moss Eater ©   (2006-06-10 11:59) [13]

А те ответы неверны, потому что объект может быть создан и без каких либо переменных, ссылающихся на него.


← →
tesseract ©   (2006-06-10 12:04) [14]


> А те ответы неверны, потому что объект может быть создан
> и без каких либо переменных, ссылающихся на него.


memory leak - мне кажеться автор хочет этого, как раз избежать. Выяснив, создан уже объект, или его надо создать. Без его пояснений дальнейшее обсуждение бессмысленно.



Страницы: 1 вся ветка

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



Память: 0.48 MB
Время: 0.023 c
15-1149282888
Tack
2006-06-03 01:14
2006.07.02
Нужна простенькая однопользовательская система контроля версий


15-1149709555
Prohodil Mimo
2006-06-07 23:45
2006.07.02
Вот как у нас город украсили :о)


15-1149701580
lookin
2006-06-07 21:33
2006.07.02
Кулинария...


2-1149770488
Иван123
2006-06-08 16:41
2006.07.02
IDPOP3 - прочитано ли письмо


2-1149830550
graf
2006-06-09 09:22
2006.07.02
И снова вопрос о FTP




   Наверх