Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Инкапсуляция и способы её реализации презентация

.pdf
Скачиваний:
67
Добавлен:
11.04.2014
Размер:
190.2 Кб
Скачать

Примеры использования «внешней» функции-операции

const QString str("Строка 1"); QString result("");

// левый операнд — не экземпляр класса result = "Строка 3" + str;

51

Методы, реализующие контрактные обязательства класса

Открытые методы, которые модифицируют и анализируют значение не конкретного свойства, а всего объекта в целом. Пример: метод вставки символа в строку

Открытые методы, реализующие действия, не связанные с модификацией и анализом состояния объекта. Пример: метод отрисовки самого себя у графического примитива

52

«Внутренние» типы данных класса

Внутри класса могут быть объявлены типы данных, определяемые пользователем (структуры, объединения, перечисления и классы)

53

Причины использования «внутренних» типов данных

Управление именами — класс является отдельным пространством имен. Обращение к (общедоступному) внутреннему типу данных возможен только через имя внешнего класса

<имя внешнего класса>::<имя типа данных>

Управление доступом - внутренний и внешний классы более тесно взаимодействуют друг с другом, чем с другими классами. Внутренний (закрытый) класс может иметь общедоступные поля, но они бу-

54 дут доступны только внешнему классу

Пример использования «внутренних» классов

// Связанный список целых чисел class LinkedList

{

public:

// Итератор

class Iterator // Вложенный класс

{

public:

void insert(int x); int erase();

}; ...

...

55

Пример использования «внутренних» классов

...

private:

// Элемент списка

class Link // Вложенный класс

{

public:

Link *next; int data;

}; };

...

56