Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Базовые вопросы (необходимый минимум):
- 1) Понятие объекта. Понятие класса. Чем класс отличается от структуры? Как можно создать экземпляр класса?
- 2) Методы и поля. Вызов методов. Как связаны методы и обычные функции? Private and public. friend-функции и friend-classes
- 3) Конструктор и деструктор. Зачем нужны, как и когда вызываются. Что будет, если конструктор будет private? А если деструктор?
- Зачем это может быть надо?
- 4) Конструктор копирования. Как описывается, зачем нужен, когда вызывается? Что будет, если будет приватным?
- 5) Перегрузка операторов. Как, зачем?
- 6) Перегрузка оператора=. Как, зачем, что будет, если не сделать? А если сделать приватным?
- 7) Const-методы и const-перегрузка. Что такое, зачем надо? Чем неприятно?
- 8) Аггрегация (объект как поле объекта). Способы реализации. Понятие владение полями.
- Работа с несколькими классами в разных файлах, разделение на объявление и определение.
- 9) Наследование. Понимание наследования как включения-с-расширением. Наследование как способ повторного ипользования кода.
- 10) Виртуальные методы. Наследование как наследование интерфейса. Чисто виртуальные (абстрактные) методы.
- 11) Может ли конструктор быть виртуальным? Почему? Может ли деструктор быть виртуальным? Когда необходим виртуальный деструктор?
- 12) Реализация виртуальных конструкторов. Виртуальный конструктор копирования и статический фабричный метод.
- 13) Множественное наследование как наследование интерфейса. Примеры. Понимание интерфейса как контракта.
- Вопросы "за гранью" (полезно знать, но я не считаю себя вправе требовать):
- 1) Определение приведения типа для класса. Оператор приведения типа и конструктор приведения. Ключевое слово "explicit".
- 2) Множественное наследование и его проблемы (diamond-наследование). Виртуальное множественное наследование.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement