Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Особенности вызовов конструкторов   Найти похожие ветки 

 
jack128 ©   (2004-07-06 18:53) [17]


> Исключение в цепочке унаследованных конструкторов тоже должно
> уничтожать свежесозданный объект.
да не должно. вызов унаследованного конструктора - это вызов унаследованного конструктора и нечего более. Вызова _ClassCreate не происходит и соответственно объект не уничтожается.

сравните

constructor TTest.Create();
begin
 raise Exception.Create();
end;

constructor TChildTest.Create()
begin
 try
  inherited Create; // исключение в унаследованном конструкторе, но объект жив
 except
 end;  
end;

try
 TTest.Create() // исключение в конструкторе и объект помер
except
end;

> синтаксически и такое вот разрешено:
>
> procedure TForm1.Btn1Click(Sender : TObject);
> var mycomp : tcomponent;
> begin
> caption := mycomp.name;
> end
конечно - это же логическая ошибка, а не синтаксическая. Использовать битый указатель безнаказанно нигде нельзя.
но тут то другой случай. Я вообще не говорил про ошибку, мне интересно почему сделано именно так, а не иначе. Почему вдруг объект должен уничтоваться во случае 2) ?


> Думаю, это недоработка Борланда.
А я так верил в его святость  :-))

> А все остальные участники ветки похоже не поняли, о чем
> речь вообще идет
еще не вечер ;-)



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

Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.037 c
14-1088594973
Александр Иванов
2004-06-30 15:29
2004.07.25
У меня в субботу свадьба


1-1089332816
NonProgrammer
2004-07-09 04:26
2004.07.25
Операции с датой


1-1089574827
NailMan
2004-07-11 23:40
2004.07.25
Алгоритм форматирования текста "По ширине"


11-1077914226
ALeX.B.
2004-02-27 23:37
2004.07.25
Вопрос по KolFtpSrv из ICS.


14-1089287372
Igorek
2004-07-08 15:49
2004.07.25
LMD or not LMD? - that is the question





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский