Вопросы к экзамену
При ответе на любой вопрос необходимо приводить "содержательные" примеры. Например: не класс 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 наследование