Конструктор и деструктор




ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

БУРЯТСКИЙ ФИЛИАЛ ФГОБУ ВПО «СибГУТИ»

КУРСОВАЯ РАБОТА

по дисциплине: Объектно-ориентированное программирование

 

 

выполнил: ст. г. И-161

Цыденов Б.Б

проверила: Извеков Я.О.

 

Улан-Удэ

2017 г.

Содержание

Введение…………………………………………………………………………………..4

1.Теоретическая часть……………………………………………………………………5

1.1.Основные понятия Объектно-Ориентированного Программирования……….….5

1.2.Понятие класс……………………………………………………………………...….6

1.3.Интерфейс класса……………...………………………………………………….…..7

1.4.Понятие объект…………………………………………………………………….….7

1.5.Конструкторы и деструкторы………………………………………………………...8

1.6.Статические члены класса………………………………………………………..…..10

1.7.Указатель this…………………………………………………………………………10

1.8.Перегрузка операторов …………………………………………………………..…..11

1.9.Класс TShape ………………………………………………………………….………12

2.Проектная часть…………………………………………………………………………17

2.1.Постановка задачи ………………………………………………………………..…..17

2.2.Программирование задачи ………………………………………………………..….17

2.3.Реализация………………………….……………………………………………….... 19

2.4.Результаты работы программы ………………………………………………………28

Заключение…………………………………..…………………………………………...31

Список использованной литературы…….…………………………………………..…32

 

Введение

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

Используя язык высокого уровня, программисты могли писать программы до нескольких тысяч строк длиной. Для того времени указанный подход к программированию был наиболее перспективным. Однако язык программирования, легко понимаемый в коротких программах, когда дело касалось больших программ, становился нечитабельным (и не управляемым). Относятся языки Алгол, Паскаль и Си. Сутью структурного программирования является возможность разбиения программы на составляющие её элементы.

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

случае вся процедура в целом упрощается, и программист получает возможность оперировать с гораздо большими по объёму программами.

Наиболее распространенным объектно-ориентированным языком программирования, безусловно, является C++. Свободно распространяемыекоммерческие системы программирования C++ существуют практически на любой платформе.

 

Теоретическая часть

Основные понятия объектно-ориентированного программирования

Основополагающей идеей одного из современных подходов к программированию — объектно-ориентированному — является объединение данных и обрабатывающих их процедур в единое целое — объекты.

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

• наследование (Inheritance);

• инкапсуляция (Encapsulation);

• полиморфизм (Polymorphism).

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

Наследование — это процесс, посредством которого один объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. В итоге создается иерархия объектных типов, где поля данных и методов «предков» автоматически являются и полями данных и методов «потомков».

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

Понятие класс

Класс — это структурированный тип, включающий в себя в качестве элементов типизированные данные и функции, применяемые по отношению к этим данным. Таким образом, инкапсуляция (объединениепараметров и методов) заложена в составе элементовкласса: типизированные данные — это параметры, а методы реализованычерез функции.Тип «класс» устанавливается для объектов. Принято говорить:однотипные объекты принадлежат одному классу.Синтаксис объявления класса подобен синтаксису объявленияструктуры. Объявление начинается с ключевого слова c l a s s, закоторым следует имя класса. В простейшем случае объявление классаимеет следующий формат:

c l a s s имя

{ тип1 переменная1

тип2 переменная2

public:

функция1;

функция2;

};

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

• private (частный);

• public (общедоступный);

• protected (защищенный).

Режим доступа p r i v a t e обозначает, что соответствующий элемент может использоваться только функциями данного класса. Этот режим доступа устанавливается по умолчанию. Элементы с режимом доступа p u b l i c доступны в других частях программы.

Интерфейс класса

Все методы класса, находящиеся в его открытой части (с уровнем доступа public) называют интерфейсом класса. Интерфейс предназначен для взаимодействия класса с остальной программой. Зная методы интерфейса и их назначение можно использовать класс, не вникая в его внутреннее устройство. Соответственно, интерфейс реализует принцип инкапсуляции.

Понятие объект

ООП привносит нам два ключевых понятия: Класс и Объект. Класс – это абстрактный тип данных. С помощью класса описывается некоторая сущность (ее характеристики и возможные действия). Например, класс может описывать студента, автомобиль и т.д. Описав класс, мы можем создать его экземпляр – объект. Объект – это уже конкретный представитель класса.

Пример:

Допустим, в программе необходимо работать со странами. Страна – это абстрактное понятие. У нее есть такие характеристики, как название, население, площадь, флаг и другое. Для описания такой страны будет использоваться класс с соответствующими полями данных. Такие страны, как Россия и Украина будут уже объектами (конкретными представителями типа страна).

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

Доступ к элементам объекта аналогичен доступу к полям структуры. Для этого используются операция «.» (точка) при обращении к элементу через имя объекта и операция «->» при обращении через указатель.

<переменная>. <имя члена класса>

<указатель> -> <имя члена класса>

Конструктор и деструктор

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-03-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: