
- •Конструкторы и деструкторы
- •Файл Dot.h
- •Файл Dot.cpp
- •Файл Main.cpp
- •Правила для конструкторов
- •Правила для деструкторов
- •Список инициализации элементов
- •Конструкторы по умолчанию
- •Конструкторы копирования
- •Указатель this
- •Встраиваемые (inline) функции
- •Файл Dot.h
- •Статические данные-члены класса
- •Файл Dot.h
- •Файл Dot.cpp
- •Файл Main.cpp
- •Статические функции-члены класса
- •Константные данные-члены класса
- •Константные функции-члены класса
- •Константные объекты
Лекция 3 |
Функции-члены класса |
1 |
Л Е К Ц И Я 3
ФУНКЦИИ-ЧЛЕНЫ КЛАССА_____________________________________________________________ 1
Конструкторы и деструкторы______________________________________________________________ 1 Правила для конструкторов ______________________________________________________________ 2 Правила для деструкторов _______________________________________________________________ 2 Список инициализации элементов_________________________________________________________ 3 Конструкторы по умолчанию______________________________________________________________ 3 Конструкторы копирования _______________________________________________________________ 4 Указатель this __________________________________________________________________________ 5 Встраиваемые (inline) функции____________________________________________________________ 5 Статические данные-члены класса ________________________________________________________ 6 Статические функции-члены класса _______________________________________________________ 7 Константные данные-члены класса ________________________________________________________ 7 Константные функции-члены класса _______________________________________________________ 8 Константные объекты ___________________________________________________________________ 8
ФУНКЦИИ-ЧЛЕНЫ КЛАССА
Конструкторы и деструкторы
Создавая некоторый объект, его необходимо проинициализировать. Для этой цели C++ предоставляет функцию-член, которая называется конструктором. Конструктор класса вызывается всякий раз, когда создается объект его класса. Конструктор имеет то же имя, что и класс, членом которого он является, и не имеет возвращаемого значения.
Заметим, что программист не должен писать код, вызывающий конструктор класса. Всю необходимую работу выполняет компилятор. Конструктор вызывается тогда, когда создается объект его класса. Объект, в свою очередь, создается при выполнении оператора, объявляющего этот объект. Таким образом, в C++ оператор объявления переменной является выполняемым оператором.
Для глобальных объектов конструктор вызывается тогда, когда начинается выполнение программы. Для локальных объектов конструктор вызывается всякий раз при выполнении оператора, объявляющего переменную.
Функцией-членом, выполняющей действия, обратные конструктору, является деструктор. Эта функ- ция-член вызывается при удалении объекта. Деструктор обычно выполняет работу по освобождению памяти, занятой объектом. Он имеет то же имя, что и класс, которому он принадлежит, с предшествующим символом ~ и не имеет возвращаемого значения. Рассмотрим пример класса, демонстрирующего работу конструктора и деструктора:
class Dot |
|
|
|
|
{ |
|
|
|
|
public : |
|
|
|
|
Dot ( ) |
{ |
cout <<"Constructor \n"; |
} |
// конструктор |
~Dot ( ) |
{ |
cout <<"Destructor \n"; |
} |
// деструктор |
} |
|
|
|
|
void main ( ) |
|
|
|
|
{ |
|
|
|
|
Dot A ; |
|
|
|
// создание объекта |
} |
|
|
|
|
Эта программа выводит на экран следующее:
Constructor
Destructor
Деструктор класса вызывается в момент удаления объекта. Это означает, что для глобальных объектов он вызывается при завершении программы, а для локальных – когда они выходят из области видимости. Заметим, что невозможно получить указатели на конструктор и деструктор.
Обычно конструктор содержит параметры, которые позволяют при построении объекта задать ему некоторые аргументы.
Если нужно проинициализировать переменные класса, используется конструктор с параметрами. Рассмотрим следующий пример:
Файл Dot.h
// подключение библиотек
Выжол Ю.А. |
Объектно-ориентированное программирование |