Текущий архив: 2003.08.04;
Скачать: CL | DM;
Вниз
как инициализируются переменные в классе по умолчанию Найти похожие ветки
← →
Man © (2003-07-22 12:40) [0]Привет Всем!Такой вопрос:как инициализируются переменные в классе по умолчанию.Т.е. глобальную переменную я могу проинициализировать,к примеру x:integer=7,да и по умолчанию и без этого по умолчанию в ней будет 0. Может есть какие настройки для компилера.Зараннее всем большое спасибо!
← →
ЮЮ © (2003-07-22 12:42) [1]в конструкторе
← →
KSergey © (2003-07-22 12:43) [2]Члены класса сбрасываются в 0 создании экземпляра
← →
Digitman © (2003-07-22 12:50) [3]Память под создаваемый экземпляр класса заполняется нулями (неявный код заполнения автоматически вставляется компилятором) до того как будет передано управление конструирующему методу.
← →
Man © (2003-07-22 13:29) [4]>KSergey
>Digitman
А это будет отрабатывать всегда или есть всё же директивы компилятору.
← →
Толик © (2003-07-22 13:34) [5]Директив никаких нет, инициализация нулями (FillChar) вызывается в InitInstance.
Initializes a newly allocated object instance to all zeros and initializes the instance’s virtual method table pointer.
← →
3APA3A © (2003-07-22 14:14) [6]А ты объяви переменную как property .
property Value:Integer read Get write Set default 666;
← →
Толик © (2003-07-22 14:23) [7]to 3APA3A © (22.07.03 14:14)
объяви переменную как property .
В этом случае инициализации не будет. Директива default вообще не для этого предназначена.
← →
Anatoly Podgoretsky © (2003-07-22 14:41) [8]Сообственно это тоже директива инициализации, только с противоположным действием, здесь мы указываем, что свойство Value не надо сохранять в потоке, а мы будем сами его инициализировать в конструкторе. Если поручить эту инициализацию системе, то мы как раз должны убрать эту директиву. (только для published свойств).
Страницы: 1 вся ветка
Текущий архив: 2003.08.04;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.02 c