лекции программирование / polevoy_cpp_2012_spring_lecture_05
.pdfОбъектно-ориентированное программирование
с использованием 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 |