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