Лекция 1 «Неизвестные типы и неизвестное пространство имен»
План
Пространства имен и объявления using
Пространства имен
Глобальное пространство имен
Вложенные пространства имен
Встраиваемые пространства имен
Безымянные пространства имен
Безымянные пространства имен вместо статических файловых объектов
Использование членов пространства имен
Директива using и область видимости
Пространства имен и объявления using
Кроме встроенных типов, рассмотренных в 1 семестре, язык С++ предоставляет богатую библиотеку абстрактных типов данных. Важнейшими библиотечными типами являются тип string, поддерживающий символьные строки переменной длины, и тип vector, определяющий коллекции переменного размера.
С типами string и vector связаны типы, известные как итераторы (iterator). Они используются для доступа к символам строк и элементам векторов.
Типы string и vector, определенные в библиотеке, являются абстракциями более простого встроенного типа массива. Эта главы посвящена массивам и введению в библиотечные типы vector и string.
Встроенные типы определены непосредственно языком С++. Эти типы представляют средства, которые сами по себе присущи большинству компьютеров, такие как числа или символы. Стандартная библиотека определяет множество дополнительных типов, высокоуровневый характер которых аппаратными средствами компьютеров, как правило, не реализуется непосредственно.
В данной лекции представлены два важнейших библиотечных типа: string и vector.
Тип string — это последовательность символов переменной длины. Тип vector содержит последовательность объектов указанного типа переменной длины. Мы также рассмотрим встроенный тип массива. Как и другие встроенные типы, массивы представляют возможности аппаратных средств. В результате массивы менее удобны в использовании, чем библиотечные типы string и vector.
Однако, прежде чем начать исследование библиотечных типов, рассмотрим механизм, упрощающий доступ к именам, определенным в библиотеке.
До сих пор имена из стандартной библиотеки упоминались в программах явно, т.е. перед каждым из них было указано имя пространства имен std.
Например, при чтении со стандартного устройства ввода применялась форма записи std::cin. Здесь использован оператор области видимости :: (см. раздел 1.2). Он означает, что имя, указанное в правом операнде оператора, следует искать в области видимости, указанной в левом операнде. Таким образом, код std::cin означает, что используемое имя cin определено в пространстве имен std.
При частом использовании библиотечных имен такая форма записи может оказаться чересчур громоздкой. К счастью, существуют и более простые способы применения членов пространств имен. Самый надежный из них — объявление using (using declaration).
Объявление using позволяет использовать имена из другого пространства имен без указания префикса имя_пространства_имен::. Объявление using имеет следующий формат:
using пространство_имен::имя;
После того как объявление using было сделано один раз, к указанному в нем имени можно обращаться без указания пространства имен.
#include
// объявление using; при использовании имени cin теперь
// подразумевается, что оно принадлежит пространству имен std
using std::cin;
int main() {
int i;
cin >> i; // ok: теперь cin - синоним std::cin
cout v2;
cout
Do'stlaringiz bilan baham: |