Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП Лекции PDF / ООП 03 Лек Функции-члены класса.pdf
Скачиваний:
57
Добавлен:
15.02.2015
Размер:
324.88 Кб
Скачать

Лекция 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

// подключение библиотек

Выжол Ю.А.

Объектно-ориентированное программирование