Содержание
- 2. Язык С++ Разработан в начале 80-х годов Бьёрном Страуструпом Поддерживет парадигмы програмирования: процедурное объектно- ориентированное обобщенное
- 3. Три кита ООП Инкапсуляция (encapsulation) Полиморфизм (polymorphism) Наследование (inheritance)
- 4. Инкапсуляция Объединение данных и функций их обработки Скрытие информации, ненужной для использования данных
- 5. Полиморфизм в биологии - наличие в пределах одного вида резко отличных по облику особей в языках
- 6. Наследование Возможность создания иерархии классов Наследование потомками свойств предков Возможность изменения наследуемых свойств и добавления новых
- 7. Классы. Инкапсуляция. Полиморфизм. Основные понятия: Описание класса Конструкторы и деструкторы Ссылки и указатели. Указатель this Функции
- 8. Описание класса Класс – это способ описания сущности, определяющий состояние и поведение, зависящее от этого состояния,
- 9. Описание класса class myclass { private: //ключ доступа int a; //члены-данные, свойства float b; //структура в
- 10. Описание класса void myclass::setvalue(int sa, float sb) { a=sa; b=sb; //или this->b=sb; } int myclass::geta() {
- 11. Конструкторы и деструкторы класса #include using namespace std; class myclass { private: int a; float b;
- 12. Конструкторы и деструкторы класса myclass::myclass() { a=0; b=0.0; m = new int[5]; } myclass::myclass(int n, float
- 13. Пример. Телефонная станция Файл tele.h #include #include #include using namespace std; #define ssn 5 //количество абонентов
- 14. Пример. Телефонная станция Файл tele.cpp #include "tele.h" Phone::Phone(){} Phone::Phone(string, string){} Phone::Phone(string dt, string c, string n,
- 15. Пример. Телефонная станция Файл exchange.cpp #include "tele.h" Exchange::Exchange(Phone *sss) { int i; for (i=0; i subscribers[i]=sss[i];
- 16. Пример. Телефонная станция
- 17. Указатели и ссылки Указатель – переменная, значением которой является адрес некоторой области памяти. int *a, n;
- 18. Указатели и ссылки на объект myclass *pmc, mc1,mc2(45, 3.5); При объявлении указателя на объект выделяется память
- 19. Указатели и ссылки Ссылка – понятие, родственное указателю. Является скрытым указателем. Во всех случаях ее можно
- 20. Указатели. Передача в функцию void swap(int *a, int *b) { int d; d=*a; *a=*b; *b=d; }
- 21. Ссылки. Передача в функцию void swp(int &a, int &b) { int d; d=a; a=b; b=d; }
- 22. Указатель this C++ содержит специальный указатель this. Он автоматически передается любой функции-члену при ее вызове и
- 23. Перегрузка функций Сигнатурой функции называют список типов ее параметров и возвращаемого значения. В С++ можно определять
- 24. Операторы class myclass { private: int a; float b; int *m; public: myclass(); myclass(int, float); myclass(int,
- 25. Оператор присваивания myclass & myclass::operator=(const myclass &mc) { m= new int[5]; for (int i=0; i m[i]=mc.m[i];
- 26. Задание 1. Строки class MyString { private: char *data; ... }; Класс должен содержать: 1.Конструктор по
- 27. Шаблоны функций Шаблоны классов Шаблон позволяет отделить алгоритмы от конкретных типов данных. Шаблон может применяться к
- 28. Шаблоны функций Шаблон функции – параметризованная функция, которая помимо обычных параметров имеет еще один – некоторый
- 29. Шаблоны функций template T abs(T a) { return (a >= 0) ? a : -a; }
- 30. Шаблоны классов Шаблон класса – параметризованный класс, которому тип инкапсулированных в нем данных передается в качестве
- 31. Шаблоны классов. Односвязный список Непараметризованный класс class LIST { private : class Node { public: int
- 32. Шаблоны классов. Шаблоны функций void LIST::insert_beg (int data) { Node * nel=new Node(data); nel->next=head; head=nel; }
- 33. Шаблоны классов. Использование void main() { LIST lst; char i; do { cin>>i; if (i!=48) lst.insert_beg(i);
- 34. Итераторы. Что это такое и зачем они нужны Итератор — объект, предоставляющий доступ к элементам некоторого
- 35. Итераторы. Что это такое и зачем они нужны Итератор является обобщением понятия «указатель». Как и указатель
- 36. Итераторы. Что это такое и зачем они нужны class Iterator { Node *cur; public: Iterator(Node *);
- 37. Задание 2. Шаблоны классов Реализовать шаблон класса List (методы, объявленные в классе). Реализовать конструктор копирования и
- 38. LIST(); LIST(const LIST &); ~LIST(); void insert_beg(T); void insert_end(T); void del(T); void del(Iterator); void display(); LIST
- 39. Наследование Наследование – механизм, поддерживающий построение иерархии классов Полиморфизм class имя_произв_кл: ключ_доступа имя_баз_кл { …. };
- 40. Наследование class Phone { protected: string dialtype; //дисковый, кнопочный, сенсорный string color; string num; //члены-данные, свойства
- 41. Наследование. Ключевые понятия Ключи доступа Простое наследование. Конструкторы и деструкторы. Раннее и позднее связывание Виртуальные методы.
- 42. Ключи доступа
- 43. Конструкторы и деструкторы Конструкторы (и операторы присваивания) не наследуются. В производном классе (ПК) должен быть собственный
- 44. Конструкторы и деструкторы Рассмотрим разные варианты работы конструкторов на примере двух простых классов. #include using namespace
- 45. Конструкторы и деструкторы Создадим несколько объектов производного класса и посмотрим, какие конструкторы и в каком порядке
- 46. Конструкторы и деструкторы Деструкторы не наследуются. Если в производном классе (ПК) деструктор не определен, то он
- 47. Виртуальные методы Указателю на БК можно присвоить значение адреса объекта любого ПК. class Base_Class { void
- 48. Виртуальные методы Наряду с ранним связыванием, в С++ реализован механизм позднего связывания. Этот механизм реализован с
- 49. Чистые виртуальные методы. Абстрактные классы В базовом классе виртуальный метод может не иметь реализации. Такой метод
- 50. Множественное наследование Класс может быть наследником нескольких базовых классов. Такое наследование называется множественным. сlass B1 {...};
- 51. Проблемы множественного наследование Проблемы могут возникнуть, если в порожденном классе используется член с таким же именем,
- 52. Задание 3. Реализовать иерархию классов геометрических объектов
- 53. Задание 3. Класс Shape должен содержать такие свойства и методы: Периметр и площадь фигуры; Параллельный перенос
- 54. Создание пользовательских интерфейсов средствами MFC Пакет Microsoft Foundation Classes (MFC) — библиотека на языке C++, разработанная
- 55. Создание проекта. Шаг 1
- 56. Создание проекта В простейшем случае программа, написанная с помощью библиотеки MFC, содержит два класса, порождаемые от
- 57. Создание проекта. Шаг 2
- 58. Создание проекта. Шаг 3 Помещаем на диалог элемент, в котором будет рисоваться график (н-р Static Text)
- 60. Создание проекта. Шаг 4
- 61. Создание проекта. Шаг 5 Добавляем на диалоговое окно кнопку, при нажатии на которую будет происходить отрисовка
- 62. Контекст устройств Графический ввод-вывод в Windows унифицирован для работы с различными физическими устройствами. Для этого предусмотрен
- 63. Отрисовка графика void CGraphDlg::OnBnClickedDraw() { // TODO: добавьте свой код обработчика уведомлений //Создаем контекст, в котором
- 65. Скачать презентацию