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

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

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

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

Сообщение trifon » 26.10.2007 23:08:17

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

Код: Выделить всё
type sobj = class
  a : Integer;
  b : Pointer;
  constructor create;
end;

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


и если не обязательна, то что лучше.
trifon
постоялец
 
Сообщения: 135
Зарегистрирован: 24.12.2006 12:08:35

Сообщение Sergei I. Gorelkin » 26.10.2007 23:35:11

Метод TObject.InitInstance, вызываемый перед конструктором при создании нового объекта, обнуляет выделенную под объект область памяти. Поэтому инициализация полей нулями, nil, пустыми строками и т.д., в принципе необязательна.
Естественно, случается что переопределяют NewInstance или вызывают конструктор повторно на уже созданном объекте. Но такие случаи все-таки скорее исключение, чем правило.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение trifon » 27.10.2007 11:44:48

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


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru