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




Вниз

Что делает TSomeType.Create? 


nick_vstu   (2002-03-01 02:40) [0]

Объясните, пожалуйста, сабж. Зачем в некоторых случаях если мы описали какую-тo переменную как Variable:TSomeType, надо делать еще Variable:=TSomeType.Create; И почему нельзя писать вместо TSomeType.Create Variable.Create?
Вопрос конечно из розряда чайнических, но все же...



Fay   (2002-03-01 05:13) [1]

>Variable:=TSomeType.Create
: перед = тебя не напрягает?



MBo   (2002-03-01 06:58) [2]

ну не в некоторых, а во всех случаях - такова парадигма Object Pascal - чтобы соэдать объект, надо вызвать его конструктор, являющийся методом класса - это, упрощенно, процедура, способная работать в отсутствие экземпляра. Конструктор выделяет память, создает таблицу вирт. и дин. методов, присваивает переменной реальный адрес. Просто объявив
Variable:TSomeType - мы лишь создали указатель. Попытка сделать
Variable.Create обречена на неудачу



Digitman   (2002-03-01 09:54) [3]

>MBo

>>"Конструктор выделяет память..." и т.д. и т.п.

Если считать конструктором логику, реализованную в теле того же конструирующего метода TSomeType.Create, то напрасно ты уводишь автора от истины. Ничего этого конструктор не делает, как не делает этого и конструктор пра-пра-предка - TObject.Create. Все это происходи ДО вызова конструирующего метода, каким бы он ни был - статическим или виртуальным, код всего этого прозрачен и внедряется компилятором непосредственно перед реальным вызовом указанного констр.метода. Задача же констр.метода - инициализировать поля уже существующего в памяти в момент его выполнения экз-ра объекта.




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




Наверх





Память: 0.72 MB
Время: 0.013 c
1-43068           jenbond               2002-02-27 10:03  2002.03.14  
шифрование


14-43136          Polevi                2002-01-28 16:29  2002.03.14  
IIS не поддерживает сервлеты :( Свинство просто..


1-43055           KIR                   2002-02-26 13:02  2002.03.14  
Объединение нескольких ячеек StringGrid a


7-43206           Alexander Beliy       2001-12-08 02:03  2002.03.14  
Вопрос


7-43207           Maxik aka Musicmax    2001-12-10 21:56  2002.03.14  
В 98, 95 винде есть mpr.dll к которой можно обратиться функцией WNetEnumCachedPasswords, если знаете подскажите есть ли аналогичные длл в WinXP, Win2000, и если есть то как называются и какими функциями к ним обратиться!