Содержание
- 2. Объектно-ориентированное программирование Идея классов является основой объектно-ориентированного программирования (ООП). Класс является типом данных определяемым пользователем. В
- 3. Интерфейсом класса являются заголовки его методов. Конкретные величины типа данных «класс» называются экземплярами класса, или объектами.
- 4. Описание класса Класс является абстрактным типом данных, определяемым пользователем, и представляет собой модель реального объекта в
- 6. При описании класса реализуется одно из ключевых понятий ООП - инкапсуляция. Для начала дадим формальное определение
- 7. Описание класса выглядит так: class { [ private: ] public: } ; Где спецификаторы доступа private
- 8. Термин private понимается в том смысле, что данные заключены внутри класса и защищены от несанкционированного доступа
- 10. Поля класса: • могут иметь любой тип, кроме типа этого же класса (но могут быть указателями
- 11. Описание объектов Конкретные переменные типа «класс» называются экземплярами класса, или объектами. Время жизни и видимость объектов
- 12. Пример1. Рассмотрим пример описания класса TPoint (точка): Точка характеризуется координатами: Х и У – это свойства
- 13. #include "stdafx.h " class TPoint { private: int x,y; public: void InitPoint ( int newx, int
- 14. int main() { class TPoint p; p.InitPoint(10,10); printf("x=%d, y=%d\n", p.getx(), p.gety()); p.relmove(5,10); printf("x=%d, y=%d\n", p.getx(), p.gety());
- 16. Классы могут быть глобальными (объявленными вне любого блока) и локальными (объявленными внутри блока, например, функции или
- 17. Вызов методов InitPoint() и relmove() приводило к изменению значений полей Х и У. В следующем примере
- 18. Конструкторы B отличии от предыдущего примера удобнее инициализировать поля объекта автоматически в момент его создания, а
- 19. class TPoint { private: int x,y; public: TPoint(int newx, int newy) // конструктор {x=newx; y=newy; }
- 20. Пример 2. В качестве примера создадим класс Counter, объекты которого могут хранить количественную меру какой-либо изменяющейся
- 21. class Counter { private: int mycount; public: Counter ( ):mycount(0){ }//конструктор void inc_count ( ) {mycount++;
- 22. Одной из наиболее часто возлагаемых на конструктор задач является инициализация полей объекта. Инициализация полей обычно реализуется
- 23. Деструкторы Кроме специального метода конструктор, который вызывается при создании объекта, существует другой особый метод, автоматически вызываемый
- 24. Наиболее распространённое применение деструкторов – освобождение памяти, выделенной конструктором при создании объекта. Определение методов может быть
- 25. class TPoint { private: int x,y; public: TPoint(int newx, int newy) {x=newx;y=newy; } void relmove (
- 26. ЗАМЕЧАНИЯ: 1)Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации. 2)Конструктор, вызываемый без
- 27. Деструктор: • не имеет аргументов и возвращаемого значения; • не может быть объявлен как const или
- 28. class Counter { private: int mycount; public: Counter ( ):mycount(0){ } Counter (int c): mycount(c){ }
- 29. Наследование Наследование – это процесс создания новых классов, называемых наследниками или производными классами, из уже существующих
- 31. Простым называется наследование, при котором производный класс имеет одного родителя. Формат описания производного класса: В заголовке
- 32. Рассмотрим правила наследования различных методов: Конструкторы не наследуются, поэтому производный класс должен иметь собственные конструкторы. Если
- 33. Поля, унаследованные из родительского класса, и которые определены в базовом классе как private, недоступны функциям производного
- 34. class Counter { protected: int mycount; public: Counter ( ):mycount(0){ } //конструктор 1 Counter(int c): mycount(c){
- 35. int main(int argc, char *argv[]) { Counter c1, c2(3); CountDown c3; std::cout std::cout std::cout c1.inc_count(); c2.inc_count();
- 36. Для объекта c3 доступен новый метод: c3.dec_count(); Но можно применять и унаследованные методы, например: std::cout Можно
- 37. Поэтому, если возникает необходимость инициализации объекта с3 каким-либо другим значением, мы должны написать новый конструктор: class
- 38. Иерархия классов На основе принципа наследования может быть построена иерархия классов. Рассмотрим пример базы данных служащих
- 40. #include using namespace std; const int len=80; class employee { protected: int nom; char name[len]; public:
- 41. class manager:public employee { private: char title[len]; int kol; public: void getdata() { employee::getdata(); cout >title;
- 42. class scientist:public employee { private: int pubs; public: void getdata() { employee::getdata(); cout >pubs; } void
- 43. int main(int argc, char *argv[]) { employee x; manager y; scientist z; laborer w; cout x.getdata();
- 44. Производный класс может являться базовым для других производных классов. Например: class A { … }; class
- 45. Класс может являться производным как одного базового класса, так и нескольких базовых классов (множественное наследование). Например:
- 46. Работа с объектами чаще всего производится через указатели, например: employee *р; Указателю на базовый класс можно
- 47. Виртуальные методы. Полиморфизм. Полиморфизм — один из важнейших механизмов ООП. Полиморфизм реализуется с помощью наследования классов
- 48. class Base { public: void show() { cout } }; class derv1:public Base {public: void show()
- 49. class derv2:public Base {public: void show() { cout } }; int main(int argc, char *argv[]) {
- 50. Итак, классы derv1 и derv2 являются наследниками класса Base. В каждом из трех классов имеется метод
- 51. Этот процесс ,называется ранним связыванием.
- 52. В C++ реализован механизм позднего связывания, когда разрешение ссылок на метод происходит на этапе выполнения программы
- 53. Этот процесс ,называется поздним связыванием.
- 54. Если в базовом классе метод определен как виртуальный, метод, определенный в производном классе с тем же
- 55. Рекомендуется делать виртуальными деструкторы для того, чтобы гарантировать правильное освобождение памяти из-под динамического объекта, поскольку в
- 56. Обзор стандартных библиотек С++ Развитие объектно - ориентированного программирования привело к созданию широкого набора библиотек. Библиотека
- 57. Библиотека содержит пять основных видов компонентов: алгоритм (algorithm): определяет вычислительную процедуру. контейнер (container): управляет набором объектов
- 58. Алгоритмы реализуют большинство методов сортировки, поиска и т.п. ( ) Контейнеры – это объекты, содержащие другие
- 59. Рассмотрим основные методы класса stack: push - метод для добавления элемента в стек. pop – удаляет
- 60. #include #include #include using namespace std; int main(int argc, char *argv[]) { stack x; for(int i=1;
- 61. Библиотека ATL расшифровывается как Active Template Library. Это библиотека классов и шаблонов, предназначенная для разработки собственных
- 62. AfxMessageBox ( ) Библиотека MFC инкапсулирует многие функции API (Application Programming Interfase), с помощью которых реализуются
- 63. Библиотека классов .NET Framework имеет следующие возможности: библиотека базовых классов,такие как строки, массивы и элементы форматирования;
- 64. Если мы захотим создать Windows – приложение с помощью технологии .NET, то открыв Visual Studio, и
- 67. Скачать презентацию





![Описание класса выглядит так: class { [ private: ] public: } ;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/929173/slide-6.jpg)



























![int main(int argc, char *argv[]) { Counter c1, c2(3); CountDown c3; std::cout](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/929173/slide-34.jpg)





![class manager:public employee { private: char title[len]; int kol; public: void getdata()](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/929173/slide-40.jpg)

![int main(int argc, char *argv[]) { employee x; manager y; scientist z;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/929173/slide-42.jpg)
















![#include #include #include using namespace std; int main(int argc, char *argv[]) {](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/929173/slide-59.jpg)





Вычисление информационного объема сообщения
Основы построения симметричных блочных алгоритмов криптографии
ТРПО. Лекция 1
Создание локальных доменных зон
Файловая система. Лабораторный практикум
История и современная парадигма информационной безопасности
Кодирование информации
Модернизация сайта Управляющей компании
Основы программирования на С++
Основные понятия и теории моделирования
Основы Си
Практика python. If elif else
Архитектурное решение по задаче Юридическая помощь
Модель черного ящика
Индикаторы качества медицинской помощи. Новая модель премирования работников
Влияние СМИ на восприятие российскими гражданами работы органов государственной власти
Кодирование вещественных чисел
Документы на новейших носителях
Что такое WWW. Информация и информационные процессы
Системы счисления. Краткие обозначения. Модифицированные коды. (часть 4)
Сеть широкополосного мобильного доступа стандарта LTE для города Сызрань
История ЭВМ
Зима (шаблон)
Возможности функции слияния
Онлайн кассы 2018
Специализация Data Science in Python
Оформление. Шрифты
Процесс разработки ПО