Инициализация переменных классов

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
trifon
постоялец
Сообщения: 135
Зарегистрирован: 24.12.2006 11:08:35

Инициализация переменных классов

Сообщение trifon »

Обязательна-ли в fpc инициализация переменных - членов класса, значениями по умолчанию, и в каких случаях.
к примеру

Код: Выделить всё

type sobj = class 
  a : Integer;
  b : Pointer;
  constructor create;
end;

constructor create.sobj;
begin
  a := 0;
  b := nil;
end;


и если не обязательна, то что лучше.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Метод TObject.InitInstance, вызываемый перед конструктором при создании нового объекта, обнуляет выделенную под объект область памяти. Поэтому инициализация полей нулями, nil, пустыми строками и т.д., в принципе необязательна.
Естественно, случается что переопределяют NewInstance или вызывают конструктор повторно на уже созданном объекте. Но такие случаи все-таки скорее исключение, чем правило.
trifon
постоялец
Сообщения: 135
Зарегистрирован: 24.12.2006 11:08:35

Сообщение trifon »

Спасибо
Ответить