Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx57 / Курсовая С .docx
Скачиваний:
57
Добавлен:
01.08.2013
Размер:
48.61 Кб
Скачать

§ 1.2. Классы

Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования — ООП.  Объектно-ориентированное программирование — расширение структурного программирования, в котором основными концепциями являются понятия классов и объектов. Основное отличие языка программирования С++ от С состоит в том, что в С нету классов, а следовательно язык С не поддерживает ООП, в отличие от С++.

Классы в С++ − это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты −конкретное представление абстракции, имеющее свои свойства и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса. В ООП существует три основных принципа построения классов:

  1. Инкапсуляция − это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.

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

  3. Полиморфизм − свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

А теперь вернёмся к классам, для начала рассмотрим структуру объявления классов.

// объявление классов в С++

class <идентификатор>

{ private: /*Закрытые элементы – члены класса (переменные, функции)*/

public: /*Открытые элементы – члены класса (методы)*/  

};

Члены класса – это переменные состояния и методы этого класса, то есть, члены класса – это и переменные, и функции (методы).

C++ обеспечивает удобные способы создания и удаления объектов, через специальные процедуры. Процедуры создания объектов называются конструкторами, а процедуры уничтожения − деструкторами. Конструкторы автоматически вызываются при описании объекта, а деструкторы − при выходе из блока, в котором этот объект был описан. Если необходимые конструкторы или деструктор для класса не описаны, то транслятор создает их сам. Для того чтобы понять важность конструкторов, сделаем маленькое отступление. Общей проблемой для всех традиционных языков программирования является инициализация: прежде чем использовать структуру данных, нужно выделить ей память и проинициализировать.

Вызов конструктора может выглядеть:

  1. имя_класса имя_объекта имя_конструктора (список фактических параметров);

  2. имя_конструктора имя_объекта (список фактических параметров).

Вид деструктора: ̴ имя_класса () {операторы};

Деструктор вызывается явно или неявно. Явно вызывается при необходимости уничтожения объекта, неявно − при выходе объекта из области действия.

§ 1.3. Перегрузка операций

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

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

<тип результата> operator <операция> (формальные параметры);

Выводы по главе I

Таким образом, в данной главе я ввела основные понятия и факты, которые будут использоваться в Главе II. Я рассмотрела основные операции с множествами, понятие класса и перегрузки операций на языке С++. Кроме того, мной были приведены примеры, на основе которых будет построена реализация подпрограмм.

Соседние файлы в папке docx57