Вопросы к экзамену — различия между версиями
Материал из SEWiki
Linsky (обсуждение | вклад) |
Linsky (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
# Программа, состоящая из нескольких файлов. | # Программа, состоящая из нескольких файлов. | ||
− | # | + | #* заголовочные файлы |
− | # | + | #* компиляция и линковка |
− | # | + | #* утилита make |
# Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C. | # Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C. | ||
− | # | + | #* применение указателей и ссылок |
− | # | + | #* арифметика указателей |
− | # | + | #* глобальная/статическая память, стек, куча |
− | # | + | #* malloc/calloc/realloc/free |
− | # | + | #* void* |
# Структуры. Неинтрузивный связный список на C. | # Структуры. Неинтрузивный связный список на C. | ||
− | # | + | #* неинтрузивная реализация |
− | # | + | #* typedef |
# Структуры. Интрузивный связный список на C. | # Структуры. Интрузивный связный список на 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. | # Обзор стандартной библиотеки 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++. | # Работа с кучей на C++. | ||
− | # | + | #* new/delete |
− | # | + | #* cоздание объектов в куче |
− | # | + | #* конструктор копий |
− | # | + | #* оператор присваивания |
# Наследование и полиморфизм. | # Наследование и полиморфизм. | ||
− | # | + | #* protected |
− | # | + | #* virtual (overriding) |
− | # | + | #* таблица виртуальных функций |
− | # | + | #* статическое/динамическое связывание |
# Умные указатели. | # Умные указатели. | ||
− | # | + | #* scoped_ptr |
− | # | + | #* auto_ptr |
− | # | + | #* shared_ptr |
# Перегрузка операторов. | # Перегрузка операторов. | ||
− | # | + | #* бинарные и унарные |
− | # | + | #* в классе/вне классе |
− | # | + | #* приведение типов |
# Ключевые слова extern, static, inline. | # Ключевые слова extern, static, inline. | ||
− | # | + | #* extern у переменных |
− | # | + | #* static у переменных и функций |
− | # | + | #* static у полей и методов |
− | # | + | #* inline у функций |
# Разное | # Разное | ||
− | # | + | #* friend |
− | # | + | #* ключевые слова const, enum |
# Элементы проектирования | # Элементы проектирования | ||
− | # | + | #* декомпозиция программы (Model, View) |
− | # | + | #* автотесты |
# Наследование: детали | # Наследование: детали | ||
− | # | + | #* сортировка и структуры данных C vs ООП |
− | # | + | #* множественное наследование |
− | # | + | #* private/protected наследование |
Версия 14:45, 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 наследование