Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lek_2_slaydy.doc
Скачиваний:
0
Добавлен:
17.11.2019
Размер:
449.54 Кб
Скачать

2 Программирование классов

ООП  парадигма программирования 1990-x.

Основное достижение в программировании на языке С++  класс.

Класс  это объектно-ориентированный инструмент для создания новых типов данных.

В С++ существует множество встроенных тиров данных, таких как int, double и char.

Классы дают возможность определять новые типы данных, которые согласно принципам ООП в использовании почти не отличаются от встроенных.

Почему необходимо использовать

объектно-ориентированное программирование

  • ООП и классы С++ помогают уменьшить сложность, особенно в больших по размерам программах в 10,000 и более строк;

  • ООП также способствует повторному использованию написанного ранее кода, вместо переписывания функций.

  • В отличие от так называемых “чистых” языков ООП, таких как SmallTalk и Actor, C++  гибридный язык программирования, который сочетает в себе качества обычного и объектно-ориентированного подходов. Это означает, что при изучении ООП можно пользоваться тем, что уже известно о С++. Нет надобности одновременно вникать во все детали ООП.

Основные преимущества ООП:

  • Инкапсуляция

  • Наследование

  • Виртуальные функции

Инкапсуляция- объединяет данные и функции в классе.

Наследование- это способ повторного использования ПО, при котором новые классы создаются из уже существующих путем заимствования их атрибутов и функций и обогащениями этими возможностями новых классов.

Полиморфизм- позволяет нам обычным образом писать программы, обрабатывающий широкий круг как существующий, так и еще даже неописанных родственных классов.

пример

дата и время

В С объявили бы структуру, подобную следующей:

struct TTime {

int year;

int month;

int day;

int hour;

int minute;

};

Члены TTime сохраняют компоненты значений даты и времени.

Лишнее T в TTime означает тип (type)  это соглашение, которое помогает отличать имена типов данных от прочего.

В соответствии с этой структурой можно объявить переменную типа TTime следующим образом:

TTime ap;

С++ позволяет опустить ключевое слово struct перед TTime, обязательное в С.

В соответствии с данным объявлением можно присвоить значения членом переменой appointment с помощью следующих операторов:

ap.year = 1996 ;

ap.month = 7 ;

ap.day = 14;

ap.hour = 8 ;

ap.minute = 30 ;

В программе, использующей множество структур TTime, вероятно потребуются функции вывода даты и времени, изменение членов структуры, сравнение двух дат и т.п. функцию отображения времени:

Void Display(struct tTime tp)

{

char buffer[32];

sprintf(buffer, “Date:%02d%02d%04d Time:%02d:%02d\n”,

tp-> month, tp->day, tp->year, tp-> hour, tp->minute);

cout << buffer;

}

Чтобы отобразить дату и время, можно передать в операторе вызова функции Display() адрес структуры ap типа TTime:

Display (&ap);

Старое эмпирическое правило гласит: данные формируют код.

Введение в понятие класса

Рассмотрим возможное представление даты и времени в классе и его преимущество.

Класс  это вид структуры, инкапсулирующей данные и функции в удобную упаковку (рис. 2.1) .

Класс

Данные-члены

рис. 2.1. инкапсуляция данных и функций в классе

Приведем предыдущую структуру TTime в виде Класса с инкапсулированными функциями и данными:

class TTime {

public: //Спецификатор //доступа

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]