Библиотеки языка C++

Содержание

Слайд 2

Библиотеки языка C++ Стандартная библиотека С++ Библиотека шаблонов STL Библиотеки для

Библиотеки языка C++

Стандартная библиотека С++
Библиотека шаблонов STL
Библиотеки для создания приложений

с графическим интерфейсом пользователя (GUI): Win API, MFC, OWL, gtk+, Qt
Библиотеки компонентов для быстрой разработки (RAD) VCL, CLX, ActiveX
Библиотеки для создания мультимедийных приложений OpenGL, SDL, DirectX
Слайд 3

Стандартная библиотека языка C++ Первый стандарт языка C++ принят в 1998

Стандартная библиотека языка C++

Первый стандарт языка C++ принят в 1998 году,

новый стандарт – C++11 (11.09.2011)
Состав библиотеки:
Средства языка C в соответствии со стандартом C89 (ныне действующий стандарт – C11, декабрь 2011)
Классы языка C++
Средства языка, унаследованные от библиотеки STL
Входит в состав инструментального средства (компилятора, IDE)
Доступна всегда после подключения соответствующих заголовочных файлов
Слайд 4

Библиотека STL STL (Standard Template Library) – Стандартная библиотека шаблонов Разработчики:

Библиотека STL

STL (Standard Template Library) – Стандартная библиотека шаблонов
Разработчики: Александр Степанов,

Дэвид Муссер, Менг Ли (Hewlett-Packard, начало 1990-х годов)
В состав библиотеки входят:
алгоритмы: поиск, сортировка, слияние последовательностей и перестановка элементов
итераторы: ввода, вывода, произвольного доступа
контейнеры: строки, вектора, множества, списки, очереди
Слайд 5

Заголовочные файлы STL – одномерный массив элементов; – дата и время;

Заголовочные файлы STL

– одномерный массив элементов;
– дата и время;

– основные алгоритмы;
– функции обработки данных (поиск, сортировка, обработка строк в стиле C, генератор случайных чисел);
– строка;
– стандартные потоки ввода/вывода;
– комплексные числа;
– общие математические функции;
– работа с динамической памятью.
Слайд 6

Библиотека Win32 API Стандарт отсутствует Состав библиотеки: Типы данных Константы Функции

Библиотека Win32 API

Стандарт отсутствует
Состав библиотеки:
Типы данных
Константы
Функции
Разработчик: Microsoft
Область использования: приложения для

ОС Windows на языках C или C++ (консольные, оконные)
Лицензия: коммерческий продукт
Подключение через заголовочные файлы (windows.h)
Слайд 7

Библиотека OWL Стандарт отсутствует Состав библиотеки: Классы, представляющие собой надстройку над

Библиотека OWL

Стандарт отсутствует
Состав библиотеки:
Классы, представляющие собой надстройку над объектами Win16 и

Win32 API, - TApplication, TDialog, TButton, TBrush
Классы общего назначения TRect
Структуры
Макросы
Разработчик: Borland
Область использования: оконные приложения для ОС Windows на языках C++, Pascal (Object Pascal)
Лицензия: коммерческий продукт
Подключение через заголовочные файлы
Слайд 8

Библиотека OWL (продолжение) Библиотека предоставляет каркас прикладной программы Главная функция: #include

Библиотека OWL (продолжение)

Библиотека предоставляет каркас прикладной программы
Главная функция:
#include
int OwlMain (int

argc, char** argv)
{
TApplication app (“Application name”);
app.Run ();
return 0;
}
Слайд 9

Библиотека MFC Стандарт отсутствует Состав библиотеки: Классы, представляющие собой надстройку над

Библиотека MFC

Стандарт отсутствует
Состав библиотеки:
Классы, представляющие собой надстройку над объектами Win32 API,

- CApplication, CWnd, CDialog, CButton, CBrush
Классы общего назначения – СRect
Шаблоны
Разработчик: Microsoft
Область использования: оконные приложения для ОС Windows на языке C++
Лицензия: коммерческий продукт
Подключение через заголовочные файлы
Слайд 10

Библиотека gtk+ Стандарт отсутствует Состав библиотеки: Функции, написанные на языке C

Библиотека gtk+

Стандарт отсутствует
Состав библиотеки:
Функции, написанные на языке C
Макросы
Структуры и др. типы

данных
Разработчик: Open Source
Последняя версия – gtk+ 3.0.6 (на 26.03.2011)
Область использования: оконные приложения для ОС Linux, Windows на языках C или C++
Подключение через заголовочные файлы
Требуется установка дистрибутива
Основа для рабочего окружения Linux (оболочек) GNOME, Xfce ()
Лицензия: свободная
Информация и дистрибутивы: www.gtk.org
Слайд 11

Библиотека wxWidgets Стандарт отсутствует. Состав библиотеки: классы (wxApp, wxFrame), функции (connect)

Библиотека wxWidgets
Стандарт отсутствует.
Состав библиотеки: классы (wxApp, wxFrame), функции (connect)
Разработчик:Юлиан Смарт, Эдинбургский

университет, 1992 год.
Написана на С++.
ОС: Linux, Windows, Mac OS X.
Лицензия — бесплатная.
Программы, созданные на основе: Code::Blocks, wxMaxima.
Слайд 12

Библиотека Qt Стандарт отсутствует Состав библиотеки: классы, макросы (сигналы и слоты)

Библиотека Qt

Стандарт отсутствует
Состав библиотеки: классы, макросы (сигналы и слоты)
Разработчик: Trolltech (Хаавард

Норд, Эрик Чамбенг, 1995 год), Nokia, Digia
Лицензия: коммерческая (?)
Версия: 4.8.1 (на 28.03.2012)
Область использования: оконные приложения для ОС Linux, Mac OS, Windows на языке C++
Основа для оболочки KDE (Linux)
Подключение через заголовочные файлы
Требуется установка дистрибутива (Qt 4.x)
Используется метаобъектный компилятор (MOC)
Qt Creator – инструментальная среда разработки
Слайд 13

Классы библиотеки Qt QApplication — класс приложения QWidget – базовый класс

Классы библиотеки Qt

QApplication — класс приложения
QWidget – базовый класс элементов управления


QMainWindow – класс главного окна
QDialog – класс диалоговой панели
QLabel – надпись (статический текст)
QPushButton - кнопка
QLineEdit – однострочный текстовый редактор
QString – класс строки
Слайд 14

Простейшее приложение на Qt #include #include int main(int argc, char** argv)

Простейшее приложение на Qt

#include
#include
int main(int argc, char** argv)
{
QApplication app(argc,

argv);
QLabel lb1("Hello, World!");
lb1.show();
return app.exec();
}
Слайд 15

Компиляция проекта в MacOS X Перейти в папку, где находятся файлы

Компиляция проекта в MacOS X

Перейти в папку, где находятся файлы проекта
Выполнить

последовательно команды:
qmake –project
qmake
make
Слайд 16

Сигналы и слоты int main(int argc, char* argv[]) { QApplication app(argc,

Сигналы и слоты

int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QPushButton

quit("Quit");
quit.resize(75, 30);
quit.setFont(QFont("Times", 18, QFont::Bold));
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
quit.show();
return app.exec();
}
Слайд 17

Проект на основе Qt // MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H #include

Проект на основе Qt

// MyWidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include
#include
#include
#include
#include


class MyWidget : public QMainWindow
{ Q_OBJECT
public:
MyWidget();
private:
QLineEdit* line1;
QPushButton* bcount;
QLabel* lcount;
public slots:
void slotCount();
};
#endif // MYWIDGET_H

Разработка в IDE Code::Blocks

Слайд 18

MyWidget.cpp #include "..\include\MyWidget.h" MyWidget::MyWidget() { this -> resize(300,150); line1 = new

MyWidget.cpp

#include "..\include\MyWidget.h"
MyWidget::MyWidget()
{
this -> resize(300,150);
line1 = new QLineEdit(this);
bcount =

new QPushButton("Count",this);
lcount = new QLabel("плюс 1",this);
line1 -> move(60,30); line1 -> resize(70,20);
lcount -> move(140,30); lcount -> resize(30,20);
bcount -> move(190,80); bcount -> resize(50,50);
connect (bcount, SIGNAL (clicked()), this, SLOT (slotCount()));
}
void MyWidget::slotCount()
{
double d;
QString tmp;
d=line1->text().toDouble();
d=d+1;
line1->setText(tmp.setNum(d));
}
Слайд 19

main.cpp #include #include "include\MyWidget.h" int main(int argc, char* argv[]) { QApplication

main.cpp

#include
#include "include\MyWidget.h"
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
MyWidget

widget;
widget.show();
return app.exec();
}
Слайд 20

Библиотека VCL Стандарт отсутствует Состав библиотеки VCL (Visual Component Library): Классы,

Библиотека VCL

Стандарт отсутствует
Состав библиотеки VCL (Visual Component Library):
Классы, представляющие собой надстройку

над объектами Win32 API, - TWindow, TDialog, TButton, TBrush
Классы общего назначения TRect, TString
Визуальные и невизуальные компоненты (окна, таймеры, меню)
Разработчик: Borland (Embarcadero Technologies)
Область использования: оконные приложения для ОС Windows на языках C++, Pascal (Object Pascal)
Лицензия: коммерческий продукт
Подключение через заголовочные файлы
Классы используют простое наследование, базовый класс – TObject (TComponent)
Слайд 21

Главный модуль приложения, использующего VCL

Главный модуль приложения, использующего VCL

Слайд 22

Библиотека CLX Стандарт отсутствует Состав библиотеки: Классы, представляющие собой надстройку над

Библиотека CLX

Стандарт отсутствует
Состав библиотеки:
Классы, представляющие собой надстройку над объектами Win32 API,

- TWindow, TDialog, TButton, TBrush
Классы общего назначения TRect
Разработчик: Borland
Область использования: оконные приложения для ОС Windows и Unix на языках C++, Pascal (Object Pascal – Delphi, Kylix)
Подключение через заголовочные файлы
Классы используют простое наследование, базовый класс – TObject (TComponent)
Лицензия: коммерческий продукт
Использует в качестве промежуточного звена библиотеку Qt
Слайд 23

Библиотека SDL SDL (Simple DirectMedia Layer) – содержит базовый набор средств

Библиотека SDL

SDL (Simple DirectMedia Layer) – содержит базовый набор средств для

создания мультимедийных приложений на языке C:
Установка видеорежима с любой глубиной цвета (от 8 бит и выше)
Прямая запись в линейный графический видеобуфер
Создание поверхностей с атрибутами прозрачности
Воспроизведение 8-ми и 16-ти битных звуков, моно или стерео.
Полный API для управления CD аудио
События для ввода с клавиатуры, ввода мыши, выхода по требованию пользователя
Потоки
Таймеры
Слайд 24

Библиотека SDL (продолжение) Разработчик: Сэм Лантинга Официально поддерживаются операционные системы: Linux,

Библиотека SDL (продолжение)

Разработчик: Сэм Лантинга
Официально поддерживаются операционные системы: Linux, Microsoft

Windows, Mac OS, Mac OS X, FreeBSD, OpenBSD, Solaris, IRIX и QNX
SDL доступна для языков: C, C++, D, Ada, Eiffel, Haskell, Java, Lisp, Lua, Pascal, Perl, PHP, Python и Ruby
Лицензия: свободная (GNU LGPL)
Сайт: www.libsdl.org
Слайд 25

Библиотека OpenGL Стандарт: 1992 год Состав: Средства для программирования двух- и

Библиотека OpenGL

Стандарт: 1992 год
Состав:
Средства для программирования двух- и трехмерной графики (геометрические

и растровые примитивы, текстуры, освещение, атмосферные эффекты)
Разработчик: Silicon Graphics
Разработка приложений для ОС Unix, Irix, Linux, Windows, Solaris
Языки программирования: Java, Perl, Python, Ada, Visual Basic, Pascal, C++ и C#
Лицензия: различные, в т.ч. Свободная
Версия: 4.1 (на 2010 год), поддержка: Chronos Group
Официальный сайт: www.opengl.org
Подключение: заголовочные файлы gl.h, glu.h, glaux.h, glut.h