This shows you the differences between two versions of the page.
courses:object_oriented_programming:questions [2017/06/04 12:26] nplohoy created |
courses:object_oriented_programming:questions [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Список вопросов ====== | ||
- | - Что такое парадигма программирования? | ||
- | - Что такое идиома программирования? | ||
- | - Какую парадигму реализует язык С? | ||
- | - Какую парадигму реализует язык С++? | ||
- | - Язык С++ считается низкоуровневым или высокоуровневым? | ||
- | - Что такое ООП? | ||
- | - Что подразумевает абстракция в ООП? | ||
- | - Что такое инкапсуляция? | ||
- | - Что такое наследование? | ||
- | - Что такое полиморфизм? | ||
- | - Какие существуют виды полиморфизма? | ||
- | - В чем отличие компилируемых и интерпретируемых языков программирования? | ||
- | - Что такое статическая и динамическая типизация? | ||
- | - Что является единицей трансляции в С++? | ||
- | - Для чего и на какие файлы производится разбиение программы на С++? | ||
- | - Что такое union в C++, когда оно может быть применимо? | ||
- | - Опишите процесс преобразования исходного кода в исполняемый файл. | ||
- | - В чем отличие ссылки от указателя? | ||
- | - Что такое указатель на функцию и как он может быть использован? | ||
- | - Какие способы группировки данных в С++ вам известны? | ||
- | - Для чего предназначены структуры? | ||
- | - Где может быть определена структура? | ||
- | - Допустимо ли использование указателей/ссылок/массивов структур? | ||
- | - Какие существуют способы передачи параметров в функцию? | ||
- | - Для чего предназначены классы, в чем их отличие от структур? | ||
- | - Что такое инвариант класса? | ||
- | - В чем отличие функций от методов? | ||
- | - В каких случаях используются значения по умолчанию в функциях? | ||
- | - Что такое публичный интерфейс? | ||
- | - Какие существуют модификаторы доступа, для чего они используются? | ||
- | - Что такое геттеры и сеттеры? | ||
- | - Что такое inline-функции? | ||
- | - Где применяется неявный указатель this? | ||
- | - Для чего используется ключевое слово const? | ||
- | - Что такое константные ссылки/указатели, указатели/ссылки на константу? | ||
- | - В чем отличие синтаксической и логической константности методов? | ||
- | - Для чего используется ключевое слово mutable? | ||
- | - Что такое конструктор? | ||
- | - В каких случаях используется перегрузка конструкторов? | ||
- | - Какую цель может преследовать создание приватного конструктора? | ||
- | - Каким образом и в какой последовательности происходит инициализация полей объекта? | ||
- | - Для чего используется ключевое слово explicit? | ||
- | - В чем заключается предназначение конструктора по умолчанию? | ||
- | - Что такое деструктор, для чего он используется? | ||
- | - Каков порядок вызова деструкторов при разрушении объекта? | ||
- | - В какой момент вызывается деструктор объекта? | ||
- | - Каково время жизни объекта? | ||
- | - Зачем нужен виртуальный деструктор? | ||
- | - Как осуществляется работа с динамической памятью в С/С++? | ||
- | - В чем различие delete и delete[]? | ||
- | - Как работает оператор new с размещением? | ||
- | - Что подразумевается под идиомой RAII? | ||
- | - Перечислите основные подходы к обработке ошибок. | ||
- | - Для чего предназначен механизм обработки исключительных ситуаций? | ||
- | - Что такое исключение? | ||
- | - Какие типы данных допустимы для использования в качестве объектов exception? | ||
- | - Как происходит возбуждение исключения? | ||
- | - Кто отвечает за обработку возникших исключительных ситуаций? | ||
- | - Что такое раскрутка стека? | ||
- | - Где и для чего используется спецификатор throw? | ||
- | - Где и для чего используется спецификатор noexcept? | ||
- | - К чему приводит вызов throw без аргументов? | ||
- | - Что такое exception-safe операция? | ||
- | - Что такое делегирующие конструкторы? | ||
- | - Какого уровня гарантии предоставляются библиотечными функциями? | ||
- | - Что вы можете сказать о генерации исключений в конструторе/деструкторе? | ||
- | - Какие стандартные классы исключений вам известны, для чего они предназначены? | ||
- | - Что такое ассоциация? | ||
- | - Что такое композиция и агрегация, чем они отличаются? | ||
- | - Время жизни агрегируемого объекта меньше времени жизни агрегата? | ||
- | - Какие классы называются дружественными, для каких целей используется это отношение? | ||
- | - В каком случае можно говорить об отношение «реализация»? | ||
- | - Что из себя представляет объект дочернего класса в памяти? | ||
- | - Какие существуют типы наследования, чем они различаются? | ||
- | - Наследуются ли конструкторы и деструкторы? | ||
- | - Наследуются ли приватные поля базового класса? | ||
- | - Что такое виртуальная функция? | ||
- | - Как осуществить вызов базовой реализации функции при её переопределении в дочернем классе? | ||
- | - Как связаны виртуальные функции и полиморфизм? | ||
- | - Что такое переопределение функций? | ||
- | - Работает ли переопределение для приватных функций? | ||
- | - Что такое таблица виртуальных функций? | ||
- | - Как себя ведут виртуальные функции в конструкторе и деструкторе? | ||
- | - В каких случаях допустимо приведение указателей/ссылок на дочерний класс к базовому? | ||
- | - Что такое чистая виртуальная функция? | ||
- | - Какой класс называется абстрактным? | ||
- | - Как в С++ реализуются интерфейсы? | ||
- | - Что такое перегрузка функций? | ||
- | - Как ведет себя перегрузка при наследовании? | ||
- | - Опишите процесс выбора функции среди перегруженных. | ||
- | - Чем отличаются механизмы раннего и позднего связывания? | ||
- | - Что такое множественное наследование? | ||
- | - Что такое ромбовидное наследование? | ||
- | - Какой существует механизм разрешения проблемы ромбовидного наследования в С++? | ||
- | - Для чего используется оператор разрешения контекста? | ||
- | - Как реализовано приведение типов в С? | ||
- | - Что такое статическое приведение типов? | ||
- | - Что такое динамическое приведение типов? | ||
- | - Что такое константное приведение типов? | ||
- | - Что такое интерпретирующее преобразование типов? | ||
- | - Как работает преобразование в С-стиле на языке С++? | ||
- | - Для чего предназначен механизм RTTI, как его использовать? | ||
- | - Что такое умные указатели? | ||
- | - Опишите принцип работы boost::scoped_ptr. | ||
- | - Опишите принцип работы std::auto_ptr. | ||
- | - Опишите принцип работы std::shared_ptr. | ||
- | - Опишите принцип работы std::weak_ptr. | ||
- | - В чем особенности работы умных указателей с массивами? | ||
- | - Какие группы операторов в С++ вам известны? | ||
- | - Что такое перегрузка операторов, для чего она используется? | ||
- | - Для каких типов допустима перегрузка операторов? | ||
- | - Где может быть объявлена перегрузка оператора? | ||
- | - Какие особенности у перегрузки операторов инкремента и декремента? | ||
- | - Как ведут себя операторы с особым порядком вычисления при перегрузке? | ||
- | - Наследует ли производный класс перегруженные операторы? | ||
- | - Как защитить объект от копирования? | ||
- | - Что такое шаблоны классов? | ||
- | - Что такое шаблоны функций? | ||
- | - Как осуществляется вывод аргументов шаблона? | ||
- | - Что такое специализация шаблонов? | ||
- | - Назовите хотя бы один пример возникновения undefined behavior. | ||
- | - Что такое шаблон проектирования? | ||
- | - Какие группы паттернов описаны в книге «Design patterns» GoF? | ||
- | + Вопросы по каждому из 23 шаблонов проектирования: название, область применения, решаемая задача, uml-диаграмма (можно не точную), достоинства и недостатки. | ||
- | |||
- | |||
- | ~~DISCUSSION~~ |