Режим доступа private в классе queue заменен на protected. Тогда все функции члены класса queue1 не имеют доступа к приватной части класса queue.
Конструкторы и деструкторы.
Для большинства объектов естественно требовать, чтобы они были инициализированы до начала их использования. Для этого мы использовали функцию init(). Можно реализовать автоматическую инициализацию использованием функции конструктор. Конструктор – это специальная функция, являющаяся членом класса и имеющая то же самое имя, что и класс. Функция конструктор не может иметь тип возвращаемого значения и ее нельзя вызвать явно. Пример конструктора:
|
Описание конструктора можно сделать так:
|
Вызывается функция конструктор в тот момент, когда создается объект; для локального объекта это будет происходить при входе в блок, в котором есть объявление объекта, для глобальных объектов конструктор вызывается один раз при создании объекта в начале работы программы.
Во многих случаях требуется, чтобы были произведены какие- либо действия при окончании работы объекта. Это может быть освобождение памяти, закрытие файлов и т.д. Такой функцией является деструктор. Деструктор имеет такое же имя, как и имя класса, но перед ним ставится знак тильды ( ~). Деструктор как и конструктор не может иметь тип возвращаемого значения, но может быть вызван явно.
|
Описание деструктора:
|
Можно использовать конструктор с параметрами, в этом случае можно инициализировать элементы создаваемого объекта определенными конкретными значениями. Пусть конструктор инициализации будет иметь один параметр, который будет передаваться переменной id.
|
Тогда описание конструктора по умолчанию будет следующее:
|
||
|
Конструктор инициализации будет выглядеть следующим образом:
При объявлении объекта a и передачи ему значения 210 необходимо написать:
|
Дружественные функции
Причиной введения дружественных функций явилась ситуация, когда одна и та же функция должна использовать приватные элементы двух или более разных классов. Это можно сделать при объявлении класса, объявив такую функцию используя ключевое слово friend.
Рассмотрим пример объявления двух классов, в каждом из которых объявлена дружественная функция, не являющаяся членом ни первого, ни второго класса. Дружественная функция
int same_color (line l, box b) будет сравнивать значения переменной color в каждом из классов box и line и возвращать 1, если значения совпадают, и 0 в противном случае.
Пример использования дружественных функций.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.