Модуль Основные конструкции языка программирования Простейшая программ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
## Модуль 1. Основные конструкции языка программирования C++
1. Простейшая программа. Ввод-вывод.
2. Пространства имен. Коллизия имен из разных пространств и ее разрешение.
3. Препроцессор, его роль. Основные директивы препроцессора.
4. Основные типы. Неявные преобразования типов.
5. Основные операции и операторы.
6. Функции. Передача параметров по ссылке. Понятие ссылки.
7. inline-функции.
8. Указатели на функции. Callback-вызовы.
9. Предварительное объявление.
10. Многофайловая компоновка. Схема компиляции программы. Ее отличие от схемы компиляции на
Паскале.
11. Содержимое заголовочных файлов. Что нельзя помещать в заголовочные файлы.
12. Стражи включения.
13. Предкомпилируемые заголовки.
14. Ошибки и особенности компоновки.
15. Массивы. Хранение в памяти. Передача массивов в функции.
16. Строки как массивы символов. Ввод строк.
17. Двумерные массивы и их хранение в памяти.
18. Определение типов.
19. Указатели. Передача параметров с помощью указателей.
20. Бестиповые указатели. Правила преобразования типов для них. Ошибки, связанные с приведением
типов указателей.
21. Структуры. Указатели на структуры.
22. Указатели и константность. Указатели на константы и константные указатели. Ссылки и
константность.
23. Операции с указателями. Связь одномерных массивов и указателей.
24. Передача одномерных массивов в подпрограммы как указателей на своё начало.
25. Идиома *p++, пример использования.
26. Указатели и C-строки. Стандартные функции работы с C-строками.
27. Указатели и динамическая память.
28. Двумерные динамические массивы. Передача двумерного массива как параметра функции.
29. Использование указателей для создания динамических структур данных.
## Модуль 2. Объектно-ориентированное программирование в C++
30. Классы. Защита доступа. Пример: класс Date.
31. Операции над типами. Перегрузка бинарных операций.
32. Операции над типами. Перегрузка унарных операций.
33. Дружественные функции. Операции ввода-вывода.
34. Класс динамического массива. Операция []. Деструкторы, момент вызова деструктора.
35. Объекты классов в динамической памяти.
36. Конструктор копии.
37. Операция присваивания.
38. Ситуации, в которых вызывается конструктор копии.
39. Строки string, их операции и методы.
40. Шаблоны классов. Шаблоны функций. Описание шаблонов. Два этапа компиляции шаблонов. Где
следует размещать шаблоны. Отличие от обобщенных классов и методов в.NET.
41. Тип vector, его операции. Понятие емкости вектора.
42. Массив объектов класса.
43. Класс matrix. Инициализация подобъекта. Порядок вызова конструкторов и деструкторов. Список
инициализации. Операция ().
44. Класс frac. Конструктор преобразования. Ключевое слово explicit. Операция приведения типа.
45. Наследование. Порядок вызова конструкторов и деструкторов. Конструктор копии и операция
присваивания для потомка.
46. Принцип «Выделение ресурса есть инициализация»
47. Преобразование типов в иерархии «Предок-Потомок» для объектов, указателей и ссылок. static_cast
и его проблемы.
48. Множественное наследование. Ромбовидное наследование и виртуальные базовые классы.
Проблемы множественного наследования.
49. Полиморфизм и виртуальные функции. Особенности реализации полиморфизма в C++.
50. Накладные расходы на аппарат виртуальных функций.
51. Полиморфные контейнеры. Виртуальные деструкторы.
52. Операция dynamic_cast.
53. Операция typeid и структура type_info.
54. Исключения в C++.