1.
- Код: Выделить всё
var obj: TFoo;
begin
obj.Bar;
end;
Почему я могу вызывать метод объекта, который не был создан? Ведь если в методе будет попытка обращения с свойствам класса, я получу SIGSEGV. Есть ли данной особенности полезное применение?
2.
- Код: Выделить всё
var obj: TFoo;
begin
obj := TFoo.Create;
obj.Bar;
end;
При объявлении конструктора, как private constructor Create; компилятор проглатывает данный код, игнорируя код конструктора, вместо того, чтобы выдать error, как это делается на приватных методах. При этом сам объект, как я понимаю, создается. Почему?