Вопросы к экзамену — различия между версиями

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

Текущая версия на 20:17, 17 января 2018

При ответе на любой вопрос необходимо приводить "содержательные" примеры. Например: не класс Foo с методов bar, а класс Matrix с методом add.

  1. Программа, состоящая из нескольких файлов.
    • заголовочные файлы
    • компиляция и линковка
    • утилита make
  2. Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C.
    • применение указателей и ссылок
    • арифметика указателей
    • глобальная/статическая память, стек, куча
    • malloc/calloc/realloc/free
    • void*
  3. Структуры. Неинтрузивный связный список на C.
    • неинтрузивная реализация
    • typedef
  4. Структуры. Интрузивный связный список на C.
    • интрузивная реализация
    • typedef
  5. Функции. Указатели на функции.
    • как происходит вызов функции
    • реализация сортировки
    • void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*));
  6. Обзор стандартной библиотеки C.
    • string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr, strtok)
    • stdlib.h (atoi, strtoll, srand/rand, qsort)
  7. Ввод-вывод на C. Текстовые файлы.
    • FILE, fopen, fclose, r/w, t/b
    • stdin, stdout, stderr
    • printf, scanf, fprintf, fscanf, sprintf, sscanf, fgets
    • обработка ошибок, feof, ferror
  8. Ввод/вывод на C. Бинарные файлы.
    • FILE, fopen, fclose, r/w, t/b, буферизация
    • fread, fwrite, fseek, ftell, fflush
    • обработка ошибок, feof, ferror
  9. Классы и объекты.
    • зачем нужно ООП?
    • инкапсуляция: 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 наследование