Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизИнтерфейсы. А надо ли их освобождать? Найти похожие ветки
← →
saxon (2006-12-06 13:28) [40]
> DevilDevil © (06.12.06 13:23) [38]
> Где можно про это почитать?
MSDN, Help, Books ...
← →
app © (2006-12-06 13:29) [41]
> Integer, например, то её изначальное значение может быть
> любым.
Для Integer это ноль.
Это же базис Дельфи.
← →
DrPass © (2006-12-06 13:44) [42]
> допустим я объявил Интерфейс в теле своего класса. Он по-
> идее не должен быть nil, он может содержать что угодно
Поля класса всегда инициализируются пустыми значениями при создании экземпляра класса, если иное явно не задано в конструкции. Ты путаешь с локальными переменными процедур и функций.
Что касается локальной переменной-указателем на интерфейс, то в отличие от того же integer, компилятор тоже для нее сгенерирует код очистки, так что она по умолчанию будет установлена в nil всегда
← →
Игорь Шевченко © (2006-12-06 13:58) [43]DevilDevil © (06.12.06 13:23) [38]
> Ты хочешь сказать, что Delphi сам присваивает интерфейсу
> в конструкторе значение nil. Где можно про это почитать?
>
В справке, разумеется.
← →
oxffff © (2006-12-06 14:28) [44]
>
> DevilDevil © (06.12.06 13:23) [38]
>
> > Игорь Шевченко © (06.12.06 13:17) [36]
>
>
> Если объявить не интерфейс, а другую переменную, Integer,
> например, то её изначальное значение может быть любым.
> Ты хочешь сказать, что Delphi сам присваивает интерфейсу
> в конструкторе значение nil. Где можно про это почитать?
>
См. Tobject
-class function InitInstance(Instance: Pointer): TObject;
-procedure CleanupInstance;
← →
oxffff © (2006-12-06 14:43) [45]Для локальных переменных interface и string
var a:IUnknown;
b:string;
код на asm будет
push 0
push 0
А не sub esp,8
Таким образом они всегда инициализированы.
← →
DevilDevil © (2006-12-06 15:14) [46]Всем Thanks!!!
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.047 c