Вопросы к экзамену
При ответе на любой вопрос необходимо приводить "содержательные" примеры. Например: не класс Foo с методом bar, а класс Matrix с методом add.
01. Программа, состоящая из нескольких файлов. - заголовочные файлы - компиляция и линковка - утилита make
02. Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C. - применение указателей и ссылок - арифметика указателей - глобальная/статическая память, стек, куча - malloc/calloc/realloc/free - void*
03. Структуры. Неинтрузивный связный список на C. - неинтрузивная реализация - typedef
04. Структуры. Интрузивный связный список на C. - интрузивная реализация - typedef
05. Функции. Указатели на функции. - как происходит вызов функции - реализация сортировки void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*));
06. Обзор стандартной библиотеки C. - string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr) - stdlib.h (atoi, strtoll, srand/rand, qsort)
07. Ввод-вывод на C. Текстовые файлы. - FILE, fopen, fclose, r/w, t/b - stdin, stdout, stderr - printf, scanf, fprintf, fscanf, sprintf, sscanf - обработка ошибок, feof, ferror
08. Ввод-вывод на C. Бинарные файлы. - FILE, fopen, fclose, r/w, t/b, буферизация - fread, fwrite, fseek, ftell, fflush - обработка ошибок, feof, ferror
09. Классы и объекты. - зачем нужно ООП? - инкапсуляция: private/public - конструктор (overloading), деструктор - инициализация полей
10. Работа с кучей на C++. - new/delete - cоздание объектов в куче - конструктор копий - оператор присваивания
11. Наследование и полиморфизм. - protected - virtual (overriding) - таблица виртуальных функций - статическое/динамическое связывание
12. Умные указатели. - scoped_ptr - auto_ptr - shared_ptr
13. Перегрузка операторов. - бинарные и унарные - в классе/вне классе - приведение типов
14. Ключевые слова extern, static, inline. - extern у переменных - static у переменных и функций - static у полей и методов - inline у функций
15. Разное - friend - ключевые слова const, enum
16. Элементы проектирования - декомпозиция программы (Model, View) - автотесты
17. Наследование: детали - сортировка и структуры данных C vs ООП - множественное наследование - private/protected наследование