Вопросы к экзамену — различия между версиями
Материал из SEWiki
Linsky (обсуждение | вклад) |
Linsky (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
При ответе на любой вопрос необходимо приводить "содержательные" примеры. | При ответе на любой вопрос необходимо приводить "содержательные" примеры. | ||
− | Например: не класс Foo с | + | Например: не класс 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*)); | 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 наследование | |
− | + |
Версия 14:42, 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 наследование