Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 20 стр.

UptoLike

Составители: 

20
}
};
В программе из листинга 5 в класс введен дополнительный компонент
present, который принимает единичное значение, когда память под массив вы-
делена, и нулевоев противном случае. При такой реализации методов класса
их можно вызывать в программе в любой последовательности. Необходимо
только позаботиться, чтобы при определении класса начальное значение свой-
ства present было
равно нулю. Начальная инициализация члена данных может
быть осуществлена аналогично инициализации полей структуры.
array m={NULL, 0, 0};
Однако, такой способ инициализации компонентных данных не всегда
удобен, поскольку при создании объекта зачастую необходимо не просто при-
своить некоторые начальные значения компонентным данным, но и выпол-
нять ряд действий: выделить динамическую память, открыть
файл и т.п. В
рассматриваемом примере с классом-массивом, например, при создании объ-
екта было бы полезно сразу выделить под него динамическую память, что по-
зволит избавиться от проблемы работы с неинициализированным объектом
без введения дополнительной компоненты present. Для этих целей в класс
вводится специальная компонентная функция, называемая конструктором.
Конструктор
это метод класса, имя которого совпадает с именем клас-
са. Конструктор вызывается автоматически после выделения памяти для пе-
ременной и обеспечивает инициализацию компонент-данных. Конструктор не
имеет никакого типа (даже типа void) и не возвращает никакого значения в ре-
зультате своей работы. Конструктор нельзя вызывать как обычную компо-
нентную функцию в
программе. Вызов конструктора в программе выглядит
следующим образом:
имя_класса имя_объекта ( фактические_параметры_конструктора );
имя_класса * имя_указателя = new имя_класса(фактические_ параметры_ кон-
структора );
          }
     };
    В программе из листинга 5 в класс введен дополнительный компонент
present, который принимает единичное значение, когда память под массив вы-
делена, и нулевое – в противном случае. При такой реализации методов класса
их можно вызывать в программе в любой последовательности. Необходимо
только позаботиться, чтобы при определении класса начальное значение свой-
ства present было равно нулю. Начальная инициализация члена данных может
быть осуществлена аналогично инициализации полей структуры.
    array m={NULL, 0, 0};
     Однако, такой способ инициализации компонентных данных не всегда
удобен, поскольку при создании объекта зачастую необходимо не просто при-
своить некоторые начальные значения компонентным данным, но и выпол-
нять ряд действий: выделить динамическую память, открыть файл и т.п. В
рассматриваемом примере с классом-массивом, например, при создании объ-
екта было бы полезно сразу выделить под него динамическую память, что по-
зволит избавиться от проблемы работы с неинициализированным объектом
без введения дополнительной компоненты present. Для этих целей в класс
вводится специальная компонентная функция, называемая конструктором.
    Конструктор – это метод класса, имя которого совпадает с именем клас-
са. Конструктор вызывается автоматически после выделения памяти для пе-
ременной и обеспечивает инициализацию компонент-данных. Конструктор не
имеет никакого типа (даже типа void) и не возвращает никакого значения в ре-
зультате своей работы. Конструктор нельзя вызывать как обычную компо-
нентную функцию в программе. Вызов конструктора в программе выглядит
следующим образом:
имя_класса имя_объекта ( фактические_параметры_конструктора );
имя_класса * имя_указателя = new имя_класса(фактические_ параметры_ кон-
структора );

                                       20