Содержание
- 2. Три основных механизма разработки библиотеки классов Вывод, полиморфизм, инкапсуляция class Shape{ public: virtual void draw ()
- 3. Вывод. Это способ построения одного класса из другого так, чтобы новый класс можно было использовать вместо
- 4. Указатель this Если хотите явно сослаться на объект, из которого вызвана функция-член, то можете использовать зарезервированный
- 5. Определения членов класса Члены класса, являющиеся целочисленными константами, функциями или типами, могут быть определены как в
- 6. Функции-члены не занимают память, выделенную для объекта. struct S { int m; void f(); }; Здесь
- 7. Производные классы Класс можно определить производным от других классов. В этом случае он наследует члены классов,
- 8. Указатель на производный класс D можно неявно преобразовать в указатель на его базовый класс в при
- 9. Виртуальные функции Виртуальная функция (virtual function) — это функция-член, определяющая интерфейс вызова функций, имеющих одинаковые имена
- 10. Абстрактные классы Абстрактный класс - это класс, который можно использовать только в качестве базового класса. Объект
- 11. Порядок создания и разрушения объектов Создание производится снизу вверх, т.е. объект базового класса создается до создания
- 12. Пример. struct D : public B1, public В2 { M1 m1; М2 m2; }; Предполагая, что
- 13. Оператор присваивания: operator= Оператор присваивания бывает двух видов: присваивание копированием присваивание перемещением В первом случае сигнатура
- 14. Правило 3-х Правило трёх — правило в C++, гласящее, что если класс или структура определяет один
- 15. Правило пяти С выходом С++ 11 правило расширилось и теперь называется правило пяти. Теперь при реализации
- 16. Правило Ноля Мартин Фернандес предложил также правило ноля. По этому правилу не стоит определять ни одну
- 17. Это стилистический стандарт ОО программирования (включая проектирование) , который разработчики должны понимать, чтобы не допускать создания
- 18. Один класс должен решать только одну задачу. Он может иметь несколько методов, но они должны быть
- 19. Любая сущность (например, класс или модуль) должна быть открыта для расширений, но закрыта для изменений. Каким
- 20. «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы» Цель
- 21. Рассмотрим два класса Square (квадрат) и Rectangle (прямоугольник), каждый из которых имеет виртуальные функции для установки
- 22. Программные сущности не должны зависеть от методов, которые они не используют. Принцип разделения интерфейсов говорит о
- 23. Данный принцип состоит в следующем. Высокоуровневые модули не должны зависеть от низкоуровневых. И те, и другие
- 24. Принцип инверсии зависимостей имеет три фундаментальных преимущества при проектировании. Повышение надежности. Менее стабильные части системы (реализации)
- 25. KISS — принцип проектирования, принятый в ВМС США в 1960. Принцип KISS утверждает, что большинство систем
- 26. Идиома программирования — устойчивый способ выражения некоторой составной конструкции в языке программирования. Идиома является шаблоном решения
- 27. Идиома copy-and-swap: Обмен значениями между двумя переменными выглядит следующим образом: x = a; a = b;
- 28. Получение ресурса есть инициализация (Resource Acquisition Is Initialization (RAII)) Получение некоторого ресурса неразрывно совмещается с инициализацией,
- 29. Механизм, который позволяет определить тип данных переменной или объекта во время выполнения программы. Существует множество реализаций
- 30. #include // для dynamic_cast #include using namespace std; class Base { virtual void vertFunc() { }
- 31. int main() { Derv1* d1 = new Derv1; Derv2* d2 = new Derv2; if(isDerv1( d1) )
- 32. #include #include // для typeid ( ) using namespace std; class Base { virtual void virtFunc()
- 33. Домашнее задание Проект 28. Создать абстрактный базовый класс именем своей фамилии, записанной латиницей. Например: Ivanov. Создать
- 35. Скачать презентацию