Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lucik_op.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.88 Mб
Скачать

Литература

  1. Дейтел Х., Дейтел П.. Как прграммировать на С++: Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 2001.

  2. Шилд Г. Программирование на Borland C++ для профессионалов. –Мн.: ООО «Попурри» , 1998.

  3. Скляров В.А. Язык С++ и объектно-ориентированное программирование. Мн.: Выш. шк., 1997.

  4. Ирэ П. Объектно-ориентированное программирование с использованием С++. Пер. с англ. – Киев: НИПФ «ДиаСофт Лтд», 1995.

  5. Мейерс С. Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. Пер. с англ. – М: ДМК Пресс, 2000.

Вопросы по курсу ооп

1. Как обратиться к глобальной переменной , если в функции определена локальная переменная с таким же именем?

2. Чему будут равны значения y и s после выполнения следующего кода

int y = 8;

int &s = y;

s++;

ответ s=9 y=9

3. Что происходит если new не смог выделить требуемую память?

ответ bad_alloc

4.Определить, не компилируя, что напечатает программа

class Lock{

public:

Lock(){ cout << "A"; }

Lock(Lock& B){ cout << "B"; }

~Lock(){ cout << "C"; }

};

int main(int argc, char* argv[])

{

try{

Lock guard;

throw 0; // вариант посложнее throw guard (ответ АВСЕС)

cout << "D";

}

catch( Lock& ){

cout << "E";

}

catch(...){

cout << "X";

}

cout << endl;

return 0;

}

ответ ACX

Вопросы без ответов

- как удалить массив объектов

- что такое полиморфизм

- что такое абстрактный базовый класс

- как определить чисто виртуальную функцию

- зачем нужен виртуальный деструктор

- как реализован виртуальный деструктор в C++

- чем отличаются const char* ptr и char const *ptr

- в каких случаях вызывается конструктор копирования

- в чем потенциальная опасность конструктора копирования по умолчанию

Содержание

Введение 3

Объектно-ориентированный подход 3

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

Абстрактные типы данных 4

Базовые принципы объектно-ориентированного программирования 5

Основные достоинства языка С++ 7

Особенности языка С++ 7

Ключевые слова 7

Константы и переменные 8

Операции 8

Типы данных 8

Передача аргументов функции по умолчанию 8

Простейший ввод и вывод 9

Объект cout 9

Манипуляторы hex и oct 9

Другие манипуляторы 10

Объект cin 12

Операторы для динамического выделения и освобождения памяти (new и delete) 12

Базовые конструкции объектно-ориентированных программ 15

Объекты 15

Понятие класса 16

Конструктор копирования 28

Конструктор explicit 30

Указатели на компоненты класса 32

Встроенные функции (спецификатор inline) 33

Организация внешнего доступа к локальным компонентам класса (спецификатор friend) 34

Вложенные классы 39

Static-члены (данные) класса 42

Указатель this 43

Компоненты-функции static и const 46

Proxi-классы 49

Ссылки 51

Параметры ссылки 53

Независимые ссылки 54

Практические приемы ограничения числа объектов класса 54

Наследование (производные классы) 56

Конструкторы и деструкторы при наследовании 60

Виртуальные функции 64

75

Абстрактные классы 75

Виртуальные деструкторы 81

Множественное наследование 83

Виртуальное наследование 85

Перегрузка функций 89

Перегрузка операторов 91

Перегрузка бинарного оператора 92

Перегрузка унарного оператора 96

Дружественная функция operator 97

Особенности перегрузки операции = 98

Перегрузка оператора [] 100

Перегрузка оператора () 103

Перегрузка оператора -> 104

Перегрузка операторов new и delete 105

Преобразование типа 110

Явные преобразования типов 110

dynamic_cast Operator 111

Преобразования типов, определенных в программе 114

Шаблоны 116

Параметризированные классы 116

Передача в шаблон класса дополнительных параметров 118

Шаблоны функций 119

Совместное использование шаблонов и наследования 121

Шаблоны класса и friend 122

Некоторые примеры использования шаблона класса 122

Реализация smart-указателя 122

Классы поддерживающие транзакции 125

Задание значений параметров класса по умолчанию 128

Свойства в С++ 130

Пространства имен 134

Ключевое слово using как директива 135

Ключевое слово using как объявление 136

Псевдоним пространства имен 137

Организация ввода-вывода 137

Состояние потока 141

Строковые потоки 142

Организация работы с файлами 144

Организация файла последовательного доступа 147

Создание файла произвольного доступа 150

Основные функции классов ios, istream, ostream 153

Исключения в С++ 154

Основы обработки исключительных ситуаций 155

Перенаправление исключительных ситуаций 164

Исключительная ситуация, генерируемая оператором new 165

Генерация исключений в конструкторах 167

Задание собственной функции завершения 169

Спецификации исключительных ситуаций 169

Задание собственного неожиданного обработчика 170

Иерархия исключений стандартной библиотеки 171

Стандартная библиотека шаблонов (STL) 172

Общее понятие о контейнере 172

Общее понятие об итераторе 176

Категории итераторов 181

Основные итераторы 181

Вспомогательные итераторы 188

Операции с итераторами 191

Контейнерные классы 191

Контейнеры последовательностей 191

Контейнер последовательностей vector 192

Контейнер последовательностей list 194

Контейнер последовательностей deque 197

Ассоциативные контейнеры 199

Ассоциативный контейнер multiset 199

Ассоциативный контейнер set 201

Ассоциативный контейнер multimap 201

Ассоциативный контейнер map 203

Адаптеры контейнеров 203

Адаптеры stack 204

Адаптеры queue 205

Адаптеры priority_queue 206

Пассивные и активные итераторы 206

Алгоритмы 209

Алгоритмы сортировки sort, partial_sort, sort_heap 210

Алгоритмы поиска find, find_if, find_end, binary_search 211

Алгоритмы fill, fill_n, generate и generate_n 212

Алгоритмы equal, mismatch и lexicographical_compare 213

Математические алгоритмы 214

Алгоритмы работы с множествами 215

Алгоритмы swap, iter_swap и swap_ranges 217

Алгоритмы copy, copy_backward, merge, unique и reverse 217

Примеры реализации контейнерных классов 217

Связанные списки 217

Реализация односвязного списка 217

Реализация двусвязного списка 218

Реализация двоичного дерева 223

Литература 232

Вопросы по курсу ООП 232

Св. план 2003, резерв

Учебное издание

Луцик Юрий Александрович,

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ.

ЯЗЫК С++

Учебное пособие

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

для студентов специальности «Вычислительные машины,

системы и сети» всех форм обучения

Редактор Т.А. Лейко

Корректор Е.Н. Батурчик

Компьютерная верстка

Подписано в печать . .2003. Формат 60х84 1/16. Бумага офсетная.

Гарнитура Times New Roman. Печать ризографическая. Усл. печ. л. .

Уч.- изд. л. 12,0. Тираж 200 экз. Заказ .

Издатель и полиграфическое исполнение:

Учреждение образования

«Белорусский государственный университет информатики и радиоэлектроники»

Лицензия ЛП № 156 от 05.02. 2001.

Лицензия ЛВ № 509 от 03.08. 2001.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]