Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: 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 вся ветка

Текущий архив: 2006.07.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
15-1149483657
Ega23
2006-06-05 09:00
2006.07.02
С Днём рождения! 5 июня


4-1143669499
Turbid
2006-03-30 01:58
2006.07.02
Отличие одинарного клика от двойного в трее


3-1146733714
comtat
2006-05-04 13:08
2006.07.02
Проблема с кодировкой


1-1148209778
vishnia
2006-05-21 15:09
2006.07.02
Разные стили шрифта в одном RichEdit


2-1149978517
fantasy
2006-06-11 02:28
2006.07.02
SQL