Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_05

.pdf
Скачиваний:
24
Добавлен:
20.04.2015
Размер:
128.48 Кб
Скачать

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

с использованием C++

Полевой Дмитрий Валерьевич к.т.н., доцент КиК

e-mail: oop.misis@gmail.com

АТД

абстрактный тип данных

создание/уничтожение

набор операций

структура данных – реализация АТД

10.03.2010

cppNewb.ru

2

Интерфейс

семантическая и синтаксическая конструкция

спецификация услуг

10.03.2010

cppNewb.ru

3

Класс

реализует одну или несколько абстракций

интерфейс

открытые методы

функции

закон “протекающих абстракций”

10.03.2010

cppNewb.ru

4

АТД “число”

создание

уничтожение

присваивание

сравнение

==, !=, <, <=, >, >=

• арифметические операции

-, +=, +, -=, -, *=, *, /=, /

• ввод и вывод

10.03.2010

cppNewb.ru

5

Рациональное число (класс)

Rnum(const int num, const int denum) Rnum(const Rnum& num)

~Rnum()

Rnum& operator=(const Rnum& rhs)

bool operator==(const Rnum& rhs) const bool operator<(const Rnum& rhs) const bool operator!=(const Rnum& rhs,

const Rnum& rhs)

10.03.2010

cppNewb.ru

6

Рациональное число (класс)

Rnum& operator++()

Rnum operator++(int)

Rnum& operator+=(const Rnum& rhs)

Rnum operator+(const Rnum& lhs, const Rnum& rhs)

ostream& operator<<(ostream& ostr, const Rnum& num)

istream& operator>>(istream& istr, Rnum& num)

10.03.2010

cppNewb.ru

7

АТД “динамический массив”

создание

уничтожение

получение доступа к элементу по индексу

получение размера

изменение размера

10.03.2010

cppNewb.ru

8

Динамический массив (класс)

Array(const size_t size) Array(const Array& arr) ~Array()

Array& operator=(const Array& arr)

T& at(const size_t index)

const T& at(const size_t index) const size_t size(SArray& arr) const

void resize(const size_t newSize)

10.03.2010

cppNewb.ru

9

Раздельная компиляция

компилятор (compiler)

компиляция независимых компонент

генерация объектного кода

компоновщик (linker)

связывание объектного кода

генерация исполняемого кода

преодоление ограничений компилятора

повторное использование

106.03.2010

cppNewb.ru

10