
- •Ссылки. Перегрузки функций.
- •Ооп: базовые принципы.
- •Классы. Низкоуровневое устройство.
- •Классы. Контроль доступа к полям. Статические поля.
- •Классы. Наследование.
- •Классы. Виртуальные методы.
- •Классы. Инициализация и уничтожение.
- •Исключения.
- •Шаблоны.
- •Стандартная библиотека, общие сведения.
- •Стандартная библиотека: контейнеры.
Классы. Инициализация и уничтожение.
Объект создаётся автоматически, там где начинается область его видимости и уничтожается, когда область видимости заканчивается. Если без наследования, то выделяется память на этот класс. Перед вызовом конструктора вызываются конструкторы всех полей. Далее вызываются все остальные конструкторы. Поля инициализируются в том же порядке, в котором описаны. Уничтожение происходит точно по такой же схеме.
Исключения.
Исключение – это возникновение непредвиденного или аварийного события. Исключения позволяют логически разделить вычислительный процесс на 2 части – обнаружение аварийной ситуации и её обработка.
Синтаксис:
try{} – обозначение контролируемого блока – кода, в котором может генерироваться исключение.
throw[выражение]; - генерация исключения. Тип выражения определяет тип исключения.
catch (тип имя | тип | …) {} обработчик исключений, находится непосредственно после try.
Шаблоны.
Шаблоны — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).
В C++ возможно создание шаблонов функций и классов.
Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем). Шаблон функции начинается с ключевого слова template, за которым в угловых скобках следует список параметров. Затем следует объявление функции:
template< class T >
Вместо T допустим любой другой идентификатор.
Стандартная библиотека, общие сведения.
Стандартная библиотека С++ содержит функции, макросы, типы и константы унаследованные из языка С, а также классы и другие средства С++.
Классы:
Потоковые классы – предназначены для управления потоками данных между оперативной памятью и внешними устройствами.
Строковый класс – предназначен для работы со строками.
Контейнерные классы – реализуют наиболее распространённые структуры хранения данных.
Итераторы – предназначены для унифицированного доступа к элементам классов.
Математические классы – поддерживают обработку массивов с плавающей точкой и работу с комплексными числами.
Диагностические классы – обеспечивают динамическую идентификацию типов и объектно-ориентированную обработку ошибок.
Остальные классы – распределение памяти, адаптацию к локальным особенностям и т.д.
Стандартная библиотека: контейнеры.
Контейнерные классы – это классы, предназначенные для хранения данных, организованных определённым образом.
Векторы ( <vector> ) - есть возможность увеличить количество элементов.
Двусторонние очереди ( <deque> ) – последовательный контейнер, который поддерживает произвольный доступ к элементам и обеспечивает вставку и удаление из обоих концов за постоянное время.
Списки ( <list> ) – не представляет произвольного доступа к своим элементам, зато вставка и удаление выполняется за постоянное время.
Стеки ( <stack> ) – возможно только 2 операции, добавление элемента в вершину и выборка из вершины.
Очереди ( <quenue> ) – две операции: добавление элемента в конец и выборка из начала.
Очереди с приоритетом ( <priority_quenue> ) – каждому элементу соответствует приоритет, определяющий порядок выборки из очереди.
Словари ( <map> ) – доступ к элементам через уникальные ключи, элементы хранятся в отсортированном виде.
Множества ( <set> ) – ассоциативный контейнер, содержащий только значения ключей. Ключи должны быть уникальны.
Битовые множества ( <bitset> ) – шаблон для представления и обработки длинных последовательностей битов. Фактичекски это битовый массив, для которого операции произвольного доступа, изменения отдельных битов и всего массива.
Стандартная библиотека: потоки ввода-вывода. <fstream>
Реализует инструменты для файлового ввода и вывода. Смотри fstream.
fstream (сокращение от «FileStream») — заголовочный файл из стандартной библиотеки C++, включающий набор классов, методов и функций, которые предоставляют интерфейс для чтения/записи данных из/в файл. Для манипуляции с данными файлов используются объекты, называемые потоками («stream»).
<ios>
Реализует несколько типов и функций, составляющих основу операций с iostreams.
<iostream>
Реализует основы ввода и вывода языка C++. Смотри iostream.
iostream — заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Он включён в стандартную библиотеку C++.
#include<iostream> // вСи: #include <stdio.h>
usingnamespacestd;
int main()
{
cout<<"Hello, world!"<<endl;// вСи: printf("Hello, World!\n");
}
Созданииепотоков:
ofstreamou(“output.txt”);
ifstream in("input.txt");
in>> n;
ou<< n;
ou.close();
in.close();
файловыйввод-вывод:
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
<iosfwd>
Реализует предварительные объявления нескольких шаблонов классов, связанных с вводом-выводом.
<iomanip>
Реализует инструменты для работы с форматированием вывода, например базу, используемую при форматировании целых и точных значений чисел с плавающей запятой.
<istream>
Реализует шаблон класса std::istream и других необходимых классов для ввода.
<ostream>
Реализует шаблон класса std::ostream и других необходимых классов для вывода.
<sstream>
Реализует шаблон класса std::sstream и других необходимых классов для работы со строками.
<streambuf>