Объектно-ориентированный подход к программированию.
ООП представляет собой новую идеологию разработки программы.
Традиционное процедурное программирование предполагает, что в некотором месте программы будут описаны данные для обработки, а затем разрабатываются функции, последовательность выполнения которых, определяет суть и способ обработки данных. Разделение данных и функций – отличительная черта процедурного программирования.
Суть объектно-ориентированного подхода состоит в том, что объединяются некоторые совокупности данных и функций, связанных с этими данными в субстанции, называемые классами. Далее на основе разработанных классов можно создавать новые производные классы, в которые будут входить все средства базовых классов плюс какие-то дополнения.
Понятие класса
Класс — это новый тип данных, позволяющий вводить собственные типы данных и определять операции над ними.
Класс в С++ рассматривается как естественное расширение понятия структуры.
С другой стороны, введение понятия класса является естественным развитием идей модульности.
В классе структуры данных и функции их обработки объединяются.
Класс используется только через его интерфейс — детали реализации для пользователя класса несущественны.
Идея классов отражает строение объектов реального мира — ведь каждый предмет или процесс обладает набором характеристик или отличительных черт, иными словами, свойствами и поведением.
Программы часто предназначены для моделирования предметов, процессов и явлений реального мира, поэтому в языке программирования удобно иметь адекватный инструмент для представления моделей.
Например, Б. Страуструп разработал C++ для моделирования телефонных коммутационных систем.
Тип в языках программирования – понятие первичное.
Тип объекта задает
- формат внутреннего представления объекта в памяти компьютера,
- множество значений, принимаемых объектом, и
- совокупность операций, выполняемых над этими значениями.
Реализация принципов абстракции данных при разработке программ предполагает создание новых типов данных, с наибольшей полнотой отображающих особенности решаемой задачи.
В языке С++ программист имеет возможность вводить собственные типы данных и определять операции над ними с помощью классов.
Простейшее определение класса:
Класс – это структурированный тип, состоящий из фиксированного набора возможно разнотипных данных и совокупности функций для обработки этих данных.
Определение класса дается с помощью конструкции, называемой спецификацией класса:
ключ_класса имя_класса // заголовок класса
{список_компонентов_класса}; // тело класса
Определение класса, как и структурного типа, всегда заканчивается ';',
ключ_ класса – одно из слов class, struct, union,
имя_класса – правильный идентификатор,
список_ компонентов_класса – (или членов класса - members) определения и описания типизированных данных (полей данных - data members) и принадлежащих классу функций (методов класса – member functions).
Функции – члены класса (member functions), называют также методами класса или компонентными функциями.
Данные класса (data members), называют полями данных, компонентными данными или элементами данных класса.
Определения разнотипных данных в списке отделяется ';', если данные однотипные, их идентификаторы можно перечислить через запятую, аналогично как в структурах.
Членами класса в общем случае могут быть данные, функции, классы, перечисления, битовые поля, дружественные функции, дружественные классы и имена типов.
Список членов класса, заключенный в фигурные скобки, называется телом класса, ему предшествует заголовок класса.
Определим класс book:
struct book {
char title [256];
char author [40];
float price;
void show_title ()
{cout<<title<<"\n ";}
float get_ price (void)
{return (price);}
};
Класс, как и структура, описывает тип, шаблон для будущих объявление переменных, память при объявлении класса не выделяется.
