Содержание
- 2. 5. Объектно-ориентированное программирование 5.8. Наследование классов Возможности, предоставляемые механизмом наследования: Добавлять в производном классе данные, которые
- 3. 5. Объектно-ориентированное программирование 5.8. Наследование классов class CContainer float m_weight void ShowWeight() class CBox float m_length
- 4. 5. Объектно-ориентированное программирование 5.8. Наследование классов Что происходит в порожденном классе: Поля данных и методы– члены
- 5. 5. Объектно-ориентированное программирование 5.8. Наследование классов Базовый класс Данные – члены Функции-члены Конструкторы Деструктор Перегруженная операция
- 6. 5. Объектно-ориентированное программирование 5.8. Наследование классов Базовый класс Private Protected Public Производный класс Управление доступом в
- 7. 5. Объектно-ориентированное программирование 5.8. Наследование классов class CContainer float m_weight void ShowWeight() class CBox float m_length
- 8. 5. Объектно-ориентированное программирование 5.8. Наследование классов #pragma once using std::cout; using std::cin; using std::endl; class CContainer
- 9. 5. Объектно-ориентированное программирование 5.8. Наследование классов #pragma once #include "container.h" class CBox : public CContainer {
- 10. 5. Объектно-ориентированное программирование 5.8. Наследование классов #pragma once #include "container.h" class CCan : public CContainer {
- 11. 5. Объектно-ориентированное программирование 5.8. Наследование классов #pragma once #include "box.h" class CCandyBox : public CBox {
- 12. 5. Объектно-ориентированное программирование 5.8. Наследование классов #pragma once #include "box.h“ class CCrate: public CBox { float
- 13. 5. Объектно-ориентированное программирование 5.8. Наследование классов #pragma once #include "crate.h" class CBeerCrate: public CCrate { char*
- 14. 5. Объектно-ориентированное программирование 5.8. Наследование классов #include "stdafx.h" using namespace std; int main() { CBeerCrate bx1(45);
- 15. 5. Объектно-ориентированное программирование 5.8. Наследование классов // stdafx.h : include file for standard system include files,
- 16. 5. Объектно-ориентированное программирование 5.8. Наследование классов #include "stdafx.h" using namespace std; int main() { CBeerCrate* pbx1
- 17. 5. Объектно-ориентированное программирование 5.8. Наследование классов #include "stdafx.h" using namespace std; int main() { CBeerCrate* pbx1
- 18. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once using std::cout; using std::cin; using std::endl; class CContainer
- 19. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once #include "container.h" class CBox : public CContainer {
- 20. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once #include "container.h" class CCan : public CContainer {
- 21. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once #include "box.h" class CCandyBox : public CBox {
- 22. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once #include "box.h“ class CCrate: public CBox { float
- 23. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once #include "crate.h" class CBeerCrate: public CCrate { char*
- 24. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #include "stdafx.h" using namespace std; int main() { CBeerCrate* pbx1
- 25. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #include "stdafx.h" using namespace std; int main() { CBeerCrate* pbx1
- 26. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #pragma once using std::cout; using std::cin; using std::endl; class CContainer
- 27. 5. Объектно-ориентированное программирование 5.10. Виртуальные функции #include "stdafx.h" using namespace std; int main() { CBeerCrate* pbx1
- 28. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы class CContainer float m_weight void ShowWeight() class CBox float m_length
- 29. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы class CContainer float m_weight void ShowWeight() class CBox float m_length
- 30. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы class CContainer float m_weight void ShowWeight() class CBox float m_length
- 31. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы class CContainer float m_weight void ShowWeight() class CBox float m_length
- 32. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы class CContainer float m_weight void ShowWeight() class CBox float m_length
- 33. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы class CContainer float m_weight void ShowWeight() void ShowVolume() float Volume()
- 34. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы #pragma once using std::cout; using std::cin; using std::endl; class CContainer
- 35. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы #pragma once #include "box.h" class CCandyBox : public CBox {
- 36. 5. Объектно-ориентированное программирование 5.11. Абстрактные классы Подведем итоги: Если вы определяете класс, который будет использоваться в
- 37. 5. Объектно-ориентированное программирование 5.12. Отношения классов Наследование не моделирует все виды отношений классов Наследование (is a
- 38. Упрощенная модель автомобильных гонок 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции m_length m_npos 13 m_ncars m_time
- 39. Этапы разработки объектно-ориентированных программных систем: Объектно-ориентированный анализ: исследование задачи с точки зрения объектов реального мира и
- 40. Объектно-ориентированный анализ Подходы к анализу: Кандидаты в классы и объекты: Осязаемые предметы (автомобили, трасса, люди )
- 41. Объектно-ориентированный анализ Иерархическая классификация (определение семейного сходства): Классическая категоризация: исходя из родственности свойств 5. Объектно-ориентированное программирование
- 42. Объектно-ориентированный анализ Иерархическая классификация (определение семейного сходства): Концептуальная кластеризация: вначале формируется концептуальное описание класса как кластера
- 43. Объектно-ориентированный анализ Подходы к анализу: Иерархическая классификация (определение семейного сходства): Теория прототипов: начинаем с некоторой абстракции,
- 44. Пример наивной декомпозиции 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции Моторизованное транспортное средство Космический корабль Самолет
- 45. Использование композиции 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции Моторизованное транспортное средство Косми-ческий корабль Само-лет Ко-рабль
- 46. Реализация композиции 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции CMotor _Transport CEngine … CEngine m_MyEngine …
- 47. Реализация композиции 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции CMotor _Transport CEngine … CEngine m_MyEngine …
- 48. Вернемся к нашей задаче 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции m_length m_npos 13 m_ncars m_time
- 49. Объектно-ориентированный анализ автомобильных гонок Кандидаты в классы и объекты: Осязаемые предметы: автомобили трасса секундомер Роли владелец
- 50. Объектно-ориентированный анализ автомобильных гонок Иерархии объектов: классическая категоризация 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции Транспортное
- 51. Объектно-ориентированный анализ автомобильных гонок Иерархии объектов: концептуальная кластеризация 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции Дорога
- 52. Объектно-ориентированное проектирование для моделирования автомобильных гонок: Диаграмма использования: что должна делать система (неважно – как) 5.
- 53. Объектно-ориентированное проектирование для моделирования автомобильных гонок: Конструирование классов: Отказ от иерархической системы классов (пока не умеем,
- 54. Объектно-ориентированное проектирование для моделирования автомобильных гонок: Диаграмма классов 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции -m_length
- 55. Объектно-ориентированное проектирование для моделирования автомобильных гонок: Построение диаграммы деятельности 5. Объектно-ориентированное программирование 5.6. Пример объектной декомпозиции
- 56. Класс Ccars: объявление класса. Файл Car.h // File Car.h #pragma once class CCar { int m_number;
- 57. Класс CCars: определения методов. Файл Car.cpp // file Car.cpp #include "StdAfx.h" #include "Car.h" CCar::CCar(int number, double
- 58. Класс CTrack: объявление класса. Файл Track.h //file Track.h #pragma once #include "Tinter.h" class CTrack { friend
- 59. Класс CTrack: определения методов. Файл Track.cpp //file Track.cpp #include "StdAfx.h" #include "Track.h“ CTrack::CTrack(int npos, double length):
- 60. Класс CTrack: определения методов. Файл Track.cpp void CTrack::Go(void) { m_pif->Showtrack(); m_pif->Showcars(); srand(static_cast (time( NULL ))); //prepare
- 61. Класс CTinter : объявление класса. Файл Tinter.h //file Tinter.h #pragma once class CTrack; //predeclaration of class
- 62. Класс CTinter : определения методов. Файл Tinter.cpp //file Tinter.cpp #include "StdAfx.h" #include "Tinter.h" void CTinter::Showtrack() {
- 63. Класс CTinter : определения методов. Файл Tinter.cpp void CTinter::Showcars() { std::cout std::cout m_time; for (int i=0;
- 64. Файл Stdafx.h // stdafx.h : include file for standard system include files, // or project specific
- 66. Скачать презентацию