Конспект лекций по курсу «Объектно-ориентированное программирование»




НазваниеКонспект лекций по курсу «Объектно-ориентированное программирование»
страница4/4
Дата публикации11.08.2013
Размер0.59 Mb.
ТипКонспект
lit-yaz.ru > Информатика > Конспект
1   2   3   4
Часть из этих функций стандартизирована ANSI и POSIX, часть – включена компанией Microsoft (все функции, начинающиеся с подчеркивания).
Существует также так называемая стандартная библиотека. Эта библиотека включена в стандарт C++.

Она предоставляет набор средств, которые можно классифицировать следующим образом:

  1. Строки и потоки ввода-вывода;

  2. Контейнеры (такие как vector, list и map) и алгоритмы, их использующие (сортировка, слияние, поиск и др.)

  3. Поддержка численных расчетов (комплексные числа, вектора с арифметическими операциями и др.)

  4. Стандартная библиотека C (поддержка операций с плавающей точкой, работа с C-строками и др.)

  5. Поддержка средств языка времени выполнения (определение типа во время выполнения и др.)


Стандартная библиотека определена в пространстве имен std. Это сделано для того, чтобы избежать возможного конфликта между идентификаторами библиотеки и идентификаторами, определенными в программе. Поэтому нужно каждый идентификатор стандартной библиотеки предварять префиксом std::, либо перед их использованием написать using namespace std; (в последнем случае теряется преимущество от определения библиотеки в отдельном пространстве имен).

Каждое средство стандартной библиотеки становится доступным через какой-либо стандартный заголовочный файл наподобие . Например, чтобы использовать строки, нужно подключить , а для использования списков – . Полный список заголовочных файлов дан в [Страуструп].
Ввод-вывод

Требуемый заголовочный файл – .

Стандартный поток вывода – cin, ввода – cout. Ввод-вывод определен для всех встроенных типов. При выводе в поток с помощью операторов << и >> осуществляется два действия: преобразование значений в последовательность символов, и вывод этой последовательности символов с помощью низкоуровневых операций вывода.

void f(){

cout<<10<<13.7<<”abcd”;

double d; int i;

cin>>d>>i;

}

Здесь последовательность символов: 1,0,1,3,.,7,a,b,c,d.

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

Ввод осуществляется оператором >>. Тип операнда в его правой части определяет способ интерпретации символов и то, куда будут записываться полученные значения. Стандартный поток ввода – cin.

Когда преобразование не желательно и мы хотим напрямую работать с последовательностями символов, мы используем функции неформатного ввода-вывода put и get.

cout.put('s');

char ch;

cin.get(ch);
Форматирование.

Часто необходимо управлять форматом вывода чисел (система счисления, точность чисел с плавающей точкой и др.)

cout<<123.4567;

cout.setf(ios_base::showpos);

cout<<123.4567<Строки

В ст. библ. имеется тип string, который дополняет строковые литералы, использовавшиеся ранее. Тип string обеспечивает множество полезных операций над строками, например, конкатенацию.

string s1="Hello",s2="world";

string s3=s1+", "+s2+’!’;

cout<
Сложение (+) строк означает конкатенацию. Можно складывать строку со строкой, строковым литералом и символом. Оператор += добавляет что-либо в конец строки:

s3+='\n';

Строки могут сравниваться друг с другом и со строковыми литералами:

if(s1==s2){ }

if(s3=="Привет, мир!"){ }

Другие операции:

string s4=s3.substr(0,4);//взятие подстроки

s4.insert(0,"Road to ");//вставка

s4.replace(s4.find("Hell"),4,"Heaven");//поиск и замена

TextOut(hdc,1,1,s4.c_str(),s4.size());//преобразование в C-строку и число символов строки
Того же эффекта можно добиться, используя C-строки, но это будет более громоздко. Кроме того строки string можно передавать в функции как аргументы по значению и возвращать из функции по значению, предоставив системе заботиться о распределении памяти.

Контейнеры

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

Существуют

string

vector

list

ostream, istream, ofstream, ifstream, ostringstream.
Проектирование программ
Понятия – объекты – сообщения – атрибуты – классы – методы – общность (наследование).

Литература: [1]
Правила и рекомендации по написанию хороших программ применительно к конкретному языку.

Пример. Несколько рекомендаций для C++ из [5]:

  • Везде, где только можно, используйте const.

  • Для классов с динамическим выделением памяти объявляйте копирующий конструктор и оператор присваивания.

  • Откладывайте определение переменных до последнего момента.

  • Тщательно обдумывайте использование встраиваемых функций.

  • Уменьшайте зависимости файлов при компиляции.

  • Предпочитайте ошибки во время компиляции ошибкам во время выполнения.

В [5]приводятся обоснования, примеры использования и выгоды от пименения этих правил.
Паттерны проектирования. (Design Patterns) Литература: [6]

Другой перевод – шаблоны проектирования (не путать с template).
Под паттернами проектирования понимается описание взаимодействия объектов и классов, адаптированных для решения общей задачи в конкретном контексте.

Пример. Концепция Document-View в MFC.

Document хранит представление, а View (Вид) определяет отображение документа на экране. Между документом и его видом в MFC установлен протокол взаимодействия «подписка/оповещение». Вид должен гарантировать, что внешнее представление отражает состояние документа. При каждом изменении внутренних данных документ оповещает все зависящие от него виды, в результате чего вид обновляет себя. Такой подход позволяет присоединить к одному документу несколько видов, обеспечив тем самым различные представления. Можно создать новый вид, не переписывая документ.

<Рисунок с док. и 3 видами: табл, гистограмма, круговая диаграмма >
Несколько паттернов из [6].

  • Façade (Фасад) Предоставление единого интерфейса для набора различных интерфейсов в системе.

  • Adapter (Адаптер) Преобразование стандартного интерфейса класса в интерфейс, более подходящий для нужд клиента

  • Итератор
1   2   3   4

Похожие:

Конспект лекций по курсу «Объектно-ориентированное программирование» iconОбъектно-ориентированное программирование
Курсовая работа по специальности 230201 «Информационные системы и технологии»: М. 2012 г., Мирэа, факультет Информационных технологий,...

Конспект лекций по курсу «Объектно-ориентированное программирование» iconКонспект лекций «Логистика. Конспект лекций»
Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования

Конспект лекций по курсу «Объектно-ориентированное программирование» iconГрегори К. Использование Visual C++ Специальное издание. М.; Спб
Буч Г. Объектно-ориентированное проектирование с примерами применения. – М.: Конкорд, 1992. – 519 с

Конспект лекций по курсу «Объектно-ориентированное программирование» iconКонспект лекций доцента и. А. Волковой по курсу «системы программирования»
Система программирования – комплекс программных инструментов и библиотек, который поддерживает создание и существование программного...

Конспект лекций по курсу «Объектно-ориентированное программирование» iconКонспект лекций по дисциплине вгипу, 2009 Конспект лекций по дисциплине «Управление персоналом»
Крупица В. В., Яшкова Е. В., Егоров Е. Е. Управление персоналом: Конспект лекций по дисциплине – вгипу, 2009

Конспект лекций по курсу «Объектно-ориентированное программирование» iconКонспект лекций. (Электронный учебник) Минск: бгэу, 2010. Тема 1...
Короленок Г. А. Менеджмент в торговле. Конспект лекций. (Электронный учебник) Минск: бгэу, 2010

Конспект лекций по курсу «Объектно-ориентированное программирование» iconПоляков Д. Б., Круглов И. Ю. Программирование в среде турбо паскаль (версия 5)
Зуев Е. А. Программирование на языке turbo pascal 0, М.: Радио и связь, 1993. 384

Конспект лекций по курсу «Объектно-ориентированное программирование» iconУчебное пособие к курсу лекций «Введение в современную литературу»
Предлагаемое издание является учебным пособием к вузовскому курсу «Введение в современную литературу», который читается для студентов...

Конспект лекций по курсу «Объектно-ориентированное программирование» iconКонспект лекций, которые проф. Пугинский Б. И. читал в весеннем семестре...
Закончились а для кого-то они даже и не начинались, жалко. Закончились объединив как никогда прежде два потока. Закончились превратившись...

Конспект лекций по курсу «Объектно-ориентированное программирование» iconЛитература к курсу лекций
Алексеев П. В. Философы в России 19-20 столетий. Биографии, идеи, труды. 3-е изд. М., 1999



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница