Вниз
Скачать: 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.024 c
15-1149687062
oldman
2006-06-07 17:31
2006.07.02
Вам не надоела сотовая связь MTS?


15-1149340797
Новичоккк
2006-06-03 17:19
2006.07.02
Реализация BlowFish для Delphi


6-1140364701
аноним
2006-02-19 18:58
2006.07.02
как обойти проксю используя EmbeddedWB?


15-1149410130
leonidus
2006-06-04 12:35
2006.07.02
В какую ветку реестра лучше писать настройки программы?


2-1150280536
iamdanil
2006-06-14 14:22
2006.07.02
Почему hint не отображается?




   Наверх