Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КПИЯП_ОТВЕТЫ_3 ред.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
46 Кб
Скачать
☆

Istrstream::istrstream( const char* buf);

Istrstream::istrstream( const char* buf, streamsize size);

Особенности:

  • buf - указатель на символьный массив, который используется как источник данных

  • содержимое buf должно завершаться нулевым байтом

  • size - число используемых символов строки

/* пример ниже для ввода и вывода */

3.18

Создание буферизированного потока вывода.

ostrstream::ostrstream (char* buf, streamsize size, openmode mode = ios::out);

ostrstream::ostratream();

Особенности:

  • buf - указатель на массив, который используется как приемник данных

  • size - размер символьного массива ( если массив будет переполнен, то возникнет ошибка )

  • mode - способ открытия

  • при использовании конструктора по умолчанию поток связан с динамическим массивом ( растет автоматически )

Функция pcount().

streamsize pcount();

Особенности:

  • метод буферизированного потока

  • предназначена для определения количества символов, записанных в символьный массив

  • возвращает количество записанных символов с учетом нулевого байта

Доступ к динамическому массиву.

char* str();

Особенности:

  • метод буферизированного потока

  • предназначена для заморозки ( блокировки для вывода ) динамического массива и открытия доступа к его элементам

  • возвращает указатель на байтовый массив

Функция freeze().

void freeze(bool action = true);

Особенности:

  • метод буферизированного потока

  • предназначена для управления доступом к динамическому массиву

  • true - заморозка массива

  • false - разморозка массива

3.19

Бинарный буферизированный ввод-вывод.

Массивы, связанные с буферизированными потоками могут содержать бинарную информацию.

Особенности:

  • для распознавания конца массива используется метод eof()

  • для чтения и записи символов используются методы get() , put()

  • для чтения - записи блоков данных - read(), write()

3.20

Пространства имён предназначены для локализации имен идентификаторов и предотвращения их конфликтов-одно и то же имя, упомянутое в разных контекстах больше не вызывает конфликтов. Теперь стандартная библиотека с++ выведена из глобального пространства имён и определена внутри собственного пространства имен std, что уменьшило конфликты.

Объявление пространства имен

namespace nnamespace_name{

// ...

}

Особенности

  • предотвращение конликтов имен фукнций или переменных

  • можно разбить объявление одного и того же пространства имен на несколько частей

  • нельзя объявить пространство имен внутри функции либо любой другой ограниченной области видимости

  • могут быть вложенными

  • пространство имен - область видимости

3.21

Обращение к элементам пространства имен.

Код, расположенный внутри некоторого пространства имён, может обращаться непосредственно к идентификаторам, объявленным внутри этого же пространства имён, а объекты к своим методам.

Чтобы обратиться к элементу пространства имён извне, следует перед его именем указать имя пространства и оператор разрешения видимости name::member.

3.22

Пространства имен могут быть вложенными.

namespace n1{

...

namespace n2{

// ...

}

...

}

n1::n2::item = 2

Пространства имен могут не иметь имени.

Неименованные или безымянные пространства имён - особая разновидность пространства имён, которая позволяет создавать уникальные идентификаторы, область видимости которых ограничена файлом.

namespace{

// ...

}

Область видимости идентификаторов из неименованного пространства имён ограничена файлом, в котором это пространство объявлено.

Особенности:

  • Внутри файла доступ к таким идентификаторам производится без использования квалификаторов;

  • Вне файла такие переменные невидимы;

  • Неименованные пространства имён позволяют избежать применения спецификатора static, который также сужает область видимости глобального имени до размеров файла.

Особенности:

  • Применяется для добавления всех элементов некоторого пространства имён к текущему глобальному пространству имён

  • n1 - название пространства имён

  • доступ ко всем добавленным элементам может проводится без использования квалификатора

  • не рекомендуется для использования в глобальном пространстве имен заголовочных файлов

Объявление using::n1::member.

Особенности:

  • Применяется для добавления одного элемента некоторого пространства имён к текущему глобальному пространству имён

  • n1 - название пространства имён

  • member-конкретный элемент пространства имён

  • доступ ко всем добавленным элементам может проводится без использования квалификатора

3.24

Глобальное пространство имен

Соответствует области объявлений на уровне файла.

Стандартное пространство имен std::

Содержит все функции, данные и классы стандартной библиотеки C++.

3.25

Оператор asm

Для програмирования особых ситуаций есть возможность вставки в программы кода на языке Assembler

asm("инструкция");

asm инструкция;

asm { список инструкций }

Особенности:

  • список допустимых инструкций зависит от компилятора

#include <iostream>

using namespace std;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]