Вопросы к экзамену — различия между версиями
Материал из SEWiki
Linsky (обсуждение | вклад) |
Linsky (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
## компиляция и линковка | ## компиляция и линковка | ||
## утилита make | ## утилита make | ||
− | |||
# Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C. | # Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C. | ||
## применение указателей и ссылок | ## применение указателей и ссылок | ||
Строка 13: | Строка 12: | ||
## malloc/calloc/realloc/free | ## malloc/calloc/realloc/free | ||
## void* | ## void* | ||
− | |||
# Структуры. Неинтрузивный связный список на C. | # Структуры. Неинтрузивный связный список на C. | ||
## неинтрузивная реализация | ## неинтрузивная реализация | ||
## typedef | ## typedef | ||
− | |||
# Структуры. Интрузивный связный список на C. | # Структуры. Интрузивный связный список на C. | ||
## интрузивная реализация | ## интрузивная реализация | ||
## typedef | ## typedef | ||
− | |||
# Функции. Указатели на функции. | # Функции. Указатели на функции. | ||
## как происходит вызов функции | ## как происходит вызов функции | ||
## реализация сортировки | ## реализация сортировки | ||
void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); | void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); | ||
− | |||
# Обзор стандартной библиотеки C. | # Обзор стандартной библиотеки C. | ||
## string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr) | ## string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr) | ||
## stdlib.h (atoi, strtoll, srand/rand, qsort) | ## stdlib.h (atoi, strtoll, srand/rand, qsort) | ||
− | |||
# Ввод##вывод на C. Текстовые файлы. | # Ввод##вывод на C. Текстовые файлы. | ||
## FILE, fopen, fclose, r/w, t/b | ## FILE, fopen, fclose, r/w, t/b | ||
Строка 36: | Строка 30: | ||
## printf, scanf, fprintf, fscanf, sprintf, sscanf | ## printf, scanf, fprintf, fscanf, sprintf, sscanf | ||
## обработка ошибок, feof, ferror | ## обработка ошибок, feof, ferror | ||
− | |||
# Ввод##вывод на C. Бинарные файлы. | # Ввод##вывод на C. Бинарные файлы. | ||
## FILE, fopen, fclose, r/w, t/b, буферизация | ## FILE, fopen, fclose, r/w, t/b, буферизация | ||
## fread, fwrite, fseek, ftell, fflush | ## fread, fwrite, fseek, ftell, fflush | ||
## обработка ошибок, feof, ferror | ## обработка ошибок, feof, ferror | ||
− | |||
# Классы и объекты. | # Классы и объекты. | ||
## зачем нужно ООП? | ## зачем нужно ООП? | ||
Строка 47: | Строка 39: | ||
## конструктор (overloading), деструктор | ## конструктор (overloading), деструктор | ||
## инициализация полей | ## инициализация полей | ||
− | |||
# Работа с кучей на C++. | # Работа с кучей на C++. | ||
## new/delete | ## new/delete | ||
Строка 53: | Строка 44: | ||
## конструктор копий | ## конструктор копий | ||
## оператор присваивания | ## оператор присваивания | ||
− | |||
# Наследование и полиморфизм. | # Наследование и полиморфизм. | ||
## protected | ## protected | ||
Строка 59: | Строка 49: | ||
## таблица виртуальных функций | ## таблица виртуальных функций | ||
## статическое/динамическое связывание | ## статическое/динамическое связывание | ||
− | |||
# Умные указатели. | # Умные указатели. | ||
## scoped_ptr | ## scoped_ptr | ||
## auto_ptr | ## auto_ptr | ||
## shared_ptr | ## shared_ptr | ||
− | |||
# Перегрузка операторов. | # Перегрузка операторов. | ||
## бинарные и унарные | ## бинарные и унарные | ||
## в классе/вне классе | ## в классе/вне классе | ||
## приведение типов | ## приведение типов | ||
− | |||
# Ключевые слова extern, static, inline. | # Ключевые слова extern, static, inline. | ||
## extern у переменных | ## extern у переменных | ||
Строка 75: | Строка 62: | ||
## static у полей и методов | ## static у полей и методов | ||
## inline у функций | ## inline у функций | ||
− | |||
# Разное | # Разное | ||
## friend | ## friend | ||
## ключевые слова const, enum | ## ключевые слова const, enum | ||
− | |||
# Элементы проектирования | # Элементы проектирования | ||
## декомпозиция программы (Model, View) | ## декомпозиция программы (Model, View) | ||
## автотесты | ## автотесты | ||
− | |||
# Наследование: детали | # Наследование: детали | ||
## сортировка и структуры данных C vs ООП | ## сортировка и структуры данных C vs ООП | ||
## множественное наследование | ## множественное наследование | ||
## private/protected наследование | ## private/protected наследование |
Версия 14:43, 19 декабря 2017
При ответе на любой вопрос необходимо приводить "содержательные" примеры. Например: не класс Foo с методов bar, а класс Matrix с методом add.
- Программа, состоящая из нескольких файлов.
- заголовочные файлы
- компиляция и линковка
- утилита make
- Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C.
- применение указателей и ссылок
- арифметика указателей
- глобальная/статическая память, стек, куча
- malloc/calloc/realloc/free
- void*
- Структуры. Неинтрузивный связный список на C.
- неинтрузивная реализация
- typedef
- Структуры. Интрузивный связный список на C.
- интрузивная реализация
- typedef
- Функции. Указатели на функции.
- как происходит вызов функции
- реализация сортировки
void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*));
- Обзор стандартной библиотеки C.
- string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr)
- stdlib.h (atoi, strtoll, srand/rand, qsort)
- Ввод##вывод на C. Текстовые файлы.
- FILE, fopen, fclose, r/w, t/b
- stdin, stdout, stderr
- printf, scanf, fprintf, fscanf, sprintf, sscanf
- обработка ошибок, feof, ferror
- Ввод##вывод на C. Бинарные файлы.
- FILE, fopen, fclose, r/w, t/b, буферизация
- fread, fwrite, fseek, ftell, fflush
- обработка ошибок, feof, ferror
- Классы и объекты.
- зачем нужно ООП?
- инкапсуляция: private/public
- конструктор (overloading), деструктор
- инициализация полей
- Работа с кучей на C++.
- new/delete
- cоздание объектов в куче
- конструктор копий
- оператор присваивания
- Наследование и полиморфизм.
- protected
- virtual (overriding)
- таблица виртуальных функций
- статическое/динамическое связывание
- Умные указатели.
- scoped_ptr
- auto_ptr
- shared_ptr
- Перегрузка операторов.
- бинарные и унарные
- в классе/вне классе
- приведение типов
- Ключевые слова extern, static, inline.
- extern у переменных
- static у переменных и функций
- static у полей и методов
- inline у функций
- Разное
- friend
- ключевые слова const, enum
- Элементы проектирования
- декомпозиция программы (Model, View)
- автотесты
- Наследование: детали
- сортировка и структуры данных C vs ООП
- множественное наследование
- private/protected наследование