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

Тема: Введение в классы

Некоторые замечания по объектно-ориентированному программированию

В идеале в языке С++ программирование должно быть объектно-ориентированное (ООП), единицей программирования является класс, на основе которого создаются объекты.

Основные понятия и принципы ООП: объект, класс, инкапсуляция, наследование и полиморфизм. Класс является обобщением понятия типа данных и задает свойства и поведение объектов класса, называемых так же экземплярами класса. Каждый объект принадлежит некоторому классу.

Грамотно реализованные принципы ООП, позволяют создавать программы, использующие методологию стандартных блоков (кусочков программ) – это называется повторным использованием программных кодов.

При программировании на С++ обычно используются стандартные блоки: классы из библиотек классов и функции из стандартной библиотеки AINI C, классы и функции, создаваемые вами самими, и классы и функции, созданные другими программистами, но доступные вам.

До сих пор рассматривалось использование готовых объектов из стандартной библиотеки (объекты cin, cout, объект endl и т.д.). С их помощью можно решить много задач. Но даже самый лучший набор готовых объектов нельзя применить ко всем задачам, для этого создаются собственные объекты. Гораздо проще справиться с большими и сложными проблемами, имея возможность описать объекты, о которых идет речь в задаче. Моделировать работу системы отопления проще, имея возможность манипулировать переменными, соответствующими датчикам температур, параметрам помещения и т.д.

Классы предоставляют возможность программисту моделировать объекты, которые имеют атрибуты или характеристики (представленные как данные-элементы) и способы поведения или операции (представленные как функции-элементы).

Класс – это механизм для создания объектов, представляет собой набор переменных, зачастую различных типов, скомбинированный с набором функций, предназначенных для работы с ним. Таким образом, класс можно представлять как объединение данных и процедур, предназначенных для их обработки.

Данные класса называются также переменными класса, а в языке С++ – данными-членами класса. Процедуры называются методами класса, в С++ – функциями-членами класса14.

Формально в языке С++ класс определяется как новый тип, а объекты класса декларируются как переменные этого типа. Главное отличие объекта от обычно переменной заключается в том, что с ним уже связаны не только определенные значения данных, но и методы, т.е. функции класса, определяющие поведение объектов класса. Фактически каждый объект может решать определенные задачи, манипулируя своими данными с помощью методов класса.

Переменные определяют свойства и состояния объекта. Методы определяют поведение класса в языке 15.

П. 5.2. Объявление класса

Прежде чем создать собственный объект (новый тип) необходимо объявить собственный класс. Класс объявляется при помощи ключевого слова class.

сlass имя_класса

{

private: // по умолчанию

// закрытые функции и переменные класса

public:

// открытые функции и переменные класса

}

список_объектов;

В объявлении класса список_объектов не обязателен, можyj объявить объекты класса позже, по мере необходимости.

Для объявления открытых или закрытых разделов класса используются ключевые слова public и private. Каждое ключевое слово изменяет режим доступа данных объявленных ниже его до конца объявления класса или до тех пор, пока не встретится следующее ключевое слово управления доступом.

По умолчанию все функции и переменные, объявленные внутри класса, становятся закрытыми (ключевое слово private), что означает их доступность только для других членов класса. В области private описывается «сердцевина» будущего объекта, самое важное, что есть и скрыто (инкапсулировано) в объекте и к чему доступ извне должен быть закрыт.

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

Пример. Объявим класс Car:

class Car

{

// данные-члены

// закрытый элемент класса

unsigned short Key; // переменная для хранения символического

// ключа

// открытые элементы класса

public:

unsigned int itsYear; // переменная для хранения значения

// возраст автомобиля

unsigned int numbDoors; // переменная для хранения значения

// числа дверей в автомобиле

// функция-член класса

void Start( );

};

Здесь класс имеет одну закрытую переменную, две открытые переменные и одну открытую функцию.

При объявлении класса память не резервируется, объявление просто сообщает компилятору о существовании класса Car, о том какие данные он содержит, а также о том, что он умеет делать. Кроме того, объявление сообщает компилятору о размере класса, т.е. сколько место он должен зарезервировать для каждого объекта класса Car. Выделение памяти требуют переменные, метод Start() не требует выделения памяти, поскольку для функций-членов объекта пространство в памяти не резервируется.