Главная страница
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.5 MB
Время: 0.027 c
1-1148205429
RUNaum
2006-05-21 13:57
2006.07.02
Поворот PNG без искажений.


1-1148481266
harddrive_tester
2006-05-24 18:34
2006.07.02
Тестирование жёсткого диска


2-1150356593
Жора :)
2006-06-15 11:29
2006.07.02
Указатели


10-1121179682
Piter
2005-07-12 18:48
2006.07.02
Вызов функций флешки


2-1150369563
ttt_111
2006-06-15 15:06
2006.07.02
Как запретить запускать повторно уже запущенную программу?