Содержание
- 2. Наследование Базовый класс ________ private: protected: public: Произ-вольный класс Класс-наследник
- 3. Создание класса-наследника в С++ // базовый класс class A { ... } ; //класс-наследник class B
- 4. Пример базового класса class Person { protected: char Name[30]; public: Person (); void SetName (char* );
- 5. Класс-наследник class Student : public Person { char dept[30]; public: Student (char*, char* ); void SetDept
- 6. Методы класса Person Person::Person() { } void Person::SetName (char* N) { strcpy (Name, N); } void
- 7. Собственные методы класса Student Student::Student (char* N, char* D) { strcpy (Name, N); strcpy (Dept, D);
- 8. Текст программы int main () { Person A; A.SetName (“Tom”); Student B(“Ann”, “MTS”); A.Show (); B.Show
- 9. Виртуальная функция class Person { char Name[30]; public: Person (char* ); void SetName (char* ); virtual
- 10. Текст программы int main () { Person A; A.SetName (“Tom”); Student B(“Ann”, “MTS”); A.Show (); B.Show
- 11. Полиморфизм Статический полиморфизм — поддерживается посредством перегрузки функций и операторов во время компиляции Динамический полиморфизм —
- 12. Конструкторы и наследование class Person { protected: char Name[30]; public: Person (char*); //конструктор с параметром void
- 13. Реализация конструкторов Person::Person (char* N) { strcpy (Name, N); } Student::Student (char* N, char* D) :
- 14. Язык UML UML: Unified Modeling Language Стандарты: 1.0, 2.0 Назначение: графический язык для визуализации, конструирования и
- 15. Диаграммы UML Структурные диаграммы Диаграмма компонентов Диаграмма классов Диаграмма объектов Диаграмма развертывания Диаграммы поведения Диаграмма прецедентов
- 16. Диаграмма классов Упрощенное обозначение Полное обозначение Обозначение класса на UML-диаграммах:
- 17. Взаимодействие классов Виды взаимодействия: Наследование Агрегация (включение) Использование (клиент-серверное взаимодействие) Ассоциация
- 18. Наследование Класс-наследник class A { // . . . } ; class B : public A
- 19. Агрегация class A { // . . . public: void Message ( ); } ; class
- 20. Использование class A { // . . . } ; class B { // . .
- 21. Ассоциация int main ( ) { A a; B b ; // . . . b.pa
- 22. Пример диаграммы классов Факультет Группа 1 N 1 1 N N Лектор Студент Библиотека Person Ст.билет
- 23. Друзья класса class First { int x; public: void SetX (int); friend class Second; friend void
- 24. Друзья : глобальная функция или класс class Second { // . . . public: void SetX
- 25. Указатель this class A { public: void Greet (); void Prim (); //. . . }
- 26. Перегрузка операторов Встроенные перегружаемые операторы: = == != = + - * / ++(инкремент) –(декремент) >(ввод)
- 27. Глобальные операторные функции bool operator==(MyClass, MyClass); // != MyClass operator+(MyClass&, AnyType); // - * / istream&
- 28. Функции-члены класса bool operator==(MyClass); // != MyClass operator+(AnyType); // - * / MyClass& operator++(); // -
- 29. Результат работы программы
- 30. Person.h #pragma once #include class person { char Name[20]; int Year; public: person(void); person(char* N, int
- 31. main.cpp #include "person.h" int main(int argc, char* argv[]) { person My1, My2("Nick",1989); std::cin >> My1; std::cout
- 32. Person.cpp (1) #include ".\person.h" #include person::person(void) { strcpy(Name, ''Noname''); Year=0; } person::person(char* N, int Y) {
- 33. Person.cpp (2) person person::operator+(int Y) { person Temp; Temp.Year= Year+Y; strcpy(Temp.Name,Name); return Temp; } int person::operator-(person&
- 34. Person.cpp (3) person& person::operator++() { Year++; return *this; } person& person::operator=(person& p) { if (this==&p) return
- 35. Person.cpp (4) std::istream& operator>>(std::istream& is,person& p) { char buf[20]; int Y; std::cout "; is>>buf; strcpy(p.Name,buf); std::cout
- 37. Скачать презентацию