Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
c++ / Лекция 6_1.doc
Скачиваний:
101
Добавлен:
02.04.2015
Размер:
83.97 Кб
Скачать

14. Объединения

  • Объединение состоит из нескольких переменных, которые разделяют одну и ту же область памяти

  • Объявление объединения начинается с ключевого слова union

  • При объявлении объединения компилятор автоматически выделяет область памяти, достаточную для хранения в объединении переменных самого большого по объему типа

union myunion { // объявление объединения не задает переменной и

short int i; // не выделяет памяти

char ch;

}u_var; // имя переменной (память выделяется)

Распределение памяти

Переменная

Число байт

i

2

ch

1

сh

i

Обращение к элементу объединения:

u_var.ch=’N’;

Для объединений разрешена операция ->, если обращение к объединению производится с помощью указателя.

Перечислимый тип

Перечислимый тип (enumeration) – это множество поименованных целых констант

Используется для улучшения читаемости программы

enum имя_типа { список_перечисления} переменная1,…,переменнаяN; }

enum seasons {win,spr,sum,aut};

seasons s;

Оператор printf(“%d%d\n”,win,aut); выводит на экран числа 0 и 3.

Изменение порядковых номеров

enum value {one=1,two,three,ten=10,thousand=1000,next};

printf("%d %d %d %d %d\n",one,two,ten,thousand,next);

На экран будет выведено: 1 2 10 1000 1001

Операции с переменными перечислимого типа

  • Присвоение переменной типа enum другой переменной того же типа

  • Сравнение с целью выяснения равенства или неравенства

  • Арифметические операции с константами типа enum (i=ten-one)

Переименование типов. Ключевое слово typedef

Ключевое слово typedef позволяет создать новое имя для существующего типа данных

Новое имя определяется в качестве дополнения к существующему типу

typedef тип новое_имя;

Пример

typedef float balance;

balance x; // определение переменной x типа balance (float).

Класс

Принципы построения классов

Инкапсуляция

Объединение в едином объекте данных и функций, обрабатывающих эти данные

Наследование

Наследование предполагает, что в классы могут составлять иерархию, и все характеристики класса-родителя присваиваются классу-потомку. После этого потомку добавляют новые характеристики. Иногда некоторые функции(методы) в классе-потомке переопределяются.

Полиморфизм

(многоформие)

Родственные объекты (происходящие от одного родителя) могут вести себя по-разному в зависимости от ситуации, возникающнй во время выполнения программы.

  • Класс -тип данных, определяемых пользователем

  • Класс включает как данные, так и код, предназначенный для выполнения действий над этими данными

  • Простые классы могут содержать только код или только данные

  • По умолчанию члены класса являются закрытыми (private-членами), поэтому ключевое private может отсутствовать

  • Ключевое слово public используется для объявления открытых членов класса, доступных для других частей программы

  • Доступ к закрытым членам класса организуется через его открытые функции

  • Конструктор – это специальная функция, которая является членом класса и имя которой совпадает с именем класса. Конструктор объекта вызывается при создании объекта, т. е. при выполнении инструкции объявления объекта. Выполняет функцию инициализации объекта

  • Деструктор – это функция, которая вызывается при разрушении объекта

Соседние файлы в папке c++