Углубленное изучение отдельного раздела: стандартные классы С++

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

УЗБЕКСКОЕ АГЕНТСТВО СВЯЗИ И ИНФОРМАТИЗАЦИИ

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Кафедра Информатики и графики

 

 

 

 

 

 

 

 

 

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

на тему:

УГЛУБЛЕННОЕ ИЗУЧЕНИЕ ОТДЕЛЬНОГО РАЗДЕЛА: СТАНДАРТНЫЕ КЛАССЫ С++

 

 

Выполнила:

Студентка группы 252-10ИТр.

Буланик Анна

Приняла:

Идиатуллина Э.М.

 

 

 

 

 

Ташкент 2011

Оглавление

 

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

Классы в С++

Определение

Использование класса

Управление доступом к классу

Пример реализации и использования класса

Стандартные классы: vector, string

Литература

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

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

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

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

Каждый класс определяется как список своих членов. Членами класса собственно и являются его поля (иначе - свойства) и методы (функции).

Каждый член класса может иметь свой уровень доступа (access control level), который определяет участки кода, из которых можно будет обращаться к этому члену. Большинство объектно-ориентированных языков программирования поддерживают следующие уровни доступа:

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

protected (внутренний член иерархии классов) - обращение к членам класса, определённым с таким уровнем доступа возможен из методов этого класса и из методов классов-потомков.

public (открытый член класса) - доступ к членам класса, определённым с этим уровнем доступа, свободен из любого кода.

Непосредственно с классами связаны три наиболее важных механизма объектно-ориентированного программирования:

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

Инкапсуляция - это сокрытие полей и методов класса, доступ к которым непосредственно извне нежелателен. При этом для взаимодействия с инкапсулированными членами класса предоставляется интерфейс и только через этот интерфейс можно взаимодействовать с ними.

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

Класс, как правило, имеет также специальные методы:

Конструктор- отличается от прочих методов тем, что не имеет определённого типа возвращаемых данных (явным образом) и не наследуется. Конструктор, как правило, имеет имя одинаковое с именем класса, в котором объявляется. Собственно задача конструктора состоит в инициализации членов экземпляра класса.

Деструктор- служит для деинициализации экземпляра класса и освобождения занимаемой им памяти.

КЛАССЫ В С++

 

Классы в С++ являются главным инструментальным средством объектно-ориентированного программирования. Это и является основным отличием C++ от С.

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

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

Виды конструкторов:

1.Конструктор по умолчанию

2.Конструктор копирования

.Конструктор преобразования

.Виртуальный конструктор

Например:Complex

{:

. // Конструктор по умолчанию

// (в данном случае является также и конструктором преобразования)

Complex(double i_re = 0, double i_im = 0)

: re(i_re), im(i_im)

{}

.// Конструктор копирования(const Complex &obj)

{= obj.re;= obj.im;

}:re, im;

};

 

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

Конструктор, аргументом которого является ссылка на объект того же клас?/p>