Курс ООП в С презентация. ООП в с++(полный курс). Объекты и классы
Скачать 1.76 Mb.
|
Шаблоны классовПример шаблонного класса для выбора одного из двух значений, хранящихся в этом классе. Параметрами шаблона являются тип значений и критерий выбора. template struct LessThan { bool operator()(const T&x,const T&y) { return x }; struct GreaterThan { bool operator()(const T&x,const T&y) { return x>y; } }; Шаблоны классовtemplate class PairSelect { T a, b; public: PairSelect(const T &x, const T & y):a(x),b(y){} //конструктор void Show()const { if(Compare()(a,b)) cout< } }; void main() { PairSelect p1.Show(); //вывод 10 PairSelect p2.Show(); //вывод 15.5 } Шаблоны классовСредства стандартной библиотеки шаблонов (STL) Стандартная библиотека шаблонов STL (Standard Template Library), входящая в набор стандартных средств языка C++, предназначена для облегчения жизни разработчиков, дабы избавить их от самостоятельного программирования наиболее часто используемых архитектурных решений. В неё включены такие фундаментальные механизмы, как:
строки; контейнерные классы; обобщённые алгоритмы; итераторы; численные методы. Шаблоны классовОтветственность классов и объектов Усложнение информационной системы за счет универсальных объектов, нагруженных всевозможными функциями, неизбежно приводит к потере качества и трудностям в совершенствовании программы. Предметная область определяется классами, моделирующими реальные сущности ключевых задач системы. Под этими сущностями обычно подразумеваются люди, места, вещи, организации, концепции и события. Соответствующие им классы должны описывать только тот минимум свойств и поведения, который характерен для реального прототипа объекта. Например, класс person не несет никакой ответственности за непосредственное взаимодействие с пользователем или базой данных, а используются другими объектами и функциями. Такими клиентами могут быть и средства диалога с человеком. В большинстве случаев именно человек определяет характеристики создаваемых объектов предметной области, но делая это с помощью элементов диалога. Сам диалог с пользователем чаще всего реализован с помощью форм графического или текстового интерфейса. Потоковые классы Потоковые классыПотоковые классы C++ Наиболее частой задачей является получение от пользователя определённых данных или наоборот передача данных пользователю. Её решение можно рассматривать и как часть реализации некоторой функции, так и в виде самостоятельного объекта, предназначенного для получения данных от человека. Для примера можно взять поле ввода или меню различных видов: и то, и другое – объекты экранного диалога. Обычно ввод-вывод выполняется при помощи библиотеки потоков, системы графического пользовательского интерфейса или функциями ввода-вывода языка C. Эти интерфейсы ввода-вывода в первую очередь направлены на считывание и запись отдельных значений разнообразных типов. Потоковые классыМы будем рассматривать потоки как наиболее простой вариант для реализации интерфейса с пользователем путём текстового представления экранного диалога. Поток — это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен (оперативная память, файл на диске, клавиатура или принтер). Обмен с потоком для увеличения скорости передачи данных производится, как правило, через специальную область оперативной памяти – буфер. Буфер накапливает байты, и фактическая передача данных выполняется после заполнения буфера. При вводе это дает возможность исправить ошибки, если данные из буфера еще не отправлены в программу. При неформатированном вводе-выводе передача информации осуществляется блоками байтов данных без какого-либо преобразования. При форматированном байты группируются таким образом, чтобы их можно было воспринимать как типизированные данные (целые числа, строки символов, числа с плавающей запятой и т. п.) |