- Какие две роли выполняет наследование?
- Какие виды наследования возможны в С++?
- Чем отличается модификатор доступа protected от модификаторов private и public?
- Чем открытое наследование отличается от закрытого и защищенного?
- Каков порядок вызова конструкторов? А деструкторов?
- Можно ли в производном классе объявлять новые поля? А методы?
- Если имя нового поля совпадает с именем унаследованного, то каким образом разрешить конфликт имен?
- Что происходит, если имя метода-наследника совпадает с именем базового метода?
- Объясните, зачем нужны виртуальные функции.
- Что такое связывание?
- Чем «раннее» связывание отличается от «позднего»?
- Какие два вида полиморфизма реализованы в С++?
- Дайте определение полиморфного класса.
- Может ли виртуальная функция быть дружественной функцией класса?
- Наследуются ли виртуальные функции?
- Можно ли сделать виртуальной перегруженную операцию, например, сложение?
- Как объявляется «чистая» виртуальная функция?
- Дайте определение абстрактного класса.
- Наследуются ли чистые виртуальные функции?
- Приведите классификацию целей наследования.
Шаблоны
|
|
- Для чего предназначены шаблоны?
- Какие виды шаблонов в С++ вы знаете?
- Объясните термин «инстанцирование шаблона».
- Объясните назначение ключевого слова typename.
- Какие виды параметров разрешается задавать в шаблоне класса? А в шаблоне функции?
- Можно ли параметрам шаблона присваивать значения по умолчанию?