Содержание
- 2. Постановка проблемы Бывает, что класс оказывается потомком различных базовых классов, имеющих общего предка Окно Bottom_Window при
- 3. Схема наследования
- 4. Класс Bottom_Window class Bottom_Window : public Window { public: Bottom_Window( const Point& upper_left , const Point&
- 5. Метод change_size() класса Bottom_Window void Bottom_Window :: change_size ( const Point& new_size ) { int shrinkage
- 6. Класс Bottom_Shell_Window class Bottom_Shell_Window : public Sell_Window, public Bottom_Window { public: Bottom_Shell_Window( const Point& upleft, const
- 7. Объект класса Bottom_Shell_Window
- 8. Объект класса Bottom_Shell_Window
- 9. Классы Shell_Window и Bottom_Window class Shell_Window : virtual public Window { // ………….. }; class Bottom_Window
- 10. Метод change_size() класса Bottom_Shell_Window void Bottom_Shell_Window :: change_size(const Point& size ) { Bottom_Window::change_size ( size )
- 11. Дублирование вызова метода
- 12. Решение проблемы
- 13. Класс Bottom_Window class Bottom_Window : virtual public Window { public: Bottom_Window( const Point& upleft, const Point&
- 14. Методы класса Bottom_Window void Bottom_Window::befor_change_size(const Point& nsz) { int shrinkage = size( ).y( ) - nsz.y(
- 15. Класс Shell_Window class Shell_Window : virtual public Window { public: Shell_Window( const Point& upleft, const Point&
- 16. Методы класса Bottom_Window const Point min_SW_size (40,3); Point Shell_Window::valid_new_size(const Point& new_size) { return max( new_size, min_SW_size);
- 17. Метод change_size() класса Bottom_Shell_Window void Bottom_Shell_Window :: change_size(const Point& size ) { Point new_size = Shell_Window::valid_new_size
- 18. Проблема конструктора Если у класса не виртуальный предок, то при конструировании объекта класса однозначно вызывается конструктор
- 19. Не виртуальное наследование class Shell_Window : public Window { // ………….. }; class Bottom_Window : public
- 20. Дублирование вызова конструктора Конструктор класса Window
- 21. Решение проблемы конструктора Если у класса виртуальный предок, то для его классов-«детей» конструирование объекта зависит от
- 22. Виртуальное наследование class Shell_Window : virtual public Window { // ………….. }; class Bottom_Window : virtual
- 23. Конструктор класса Shell_Window Управление конструкторами предков Конструктор класса Window Конструктор класса Bottom_Window
- 24. Конструкторы классов Bottom_Window и Shell_Window Bottom_Window:: Bottom_Window (const Point& up_left, const Point& size, const String& title)
- 25. Конструктор класса Bottom_Shell_Window Bottom_Shell_Window:: Bottom_Shell_Window ( const Point& up_left, const Point& size,const String& title) : Window(up_left,
- 26. Создание объекта класса Bottom_Shell_Window Выделяется память Конструктор класса Bottom_Shell_Window вычисляет аргументы для конструктора класса Window Выполняется
- 28. Скачать презентацию