Создание манипуляторов
Существует две разновидности манипуляторов: без параметров и с параметрами. Поскольку создание параметризованных манипуляторов выходит за рамки этой книги, следует отметить, что создание собственных манипуляторов, не имеющих параметров, — задача совсем несложная. Все не имеющие параметров манипуляторы вывода имеют следующую структуру. ostream &manip-name(ostream &stream) { // Текст программы, return stream; } Здесь manip-name — имя манипулятора. Обратите внимание, что манипулятор возвращает ссылку на поток типа ostream. Это необходимо в случае, если манипулятор должен использоваться как часть большого выражения ввода-вывода. Важно понимать, что, хотя манипулятор использует в качестве своего единственного параметра ссылку на поток, с которым он работает, при вставке манипулятора в операцию вывода аргументы у него отсутствуют. Все не имеющие параметров манипуляторы ввода имеют следующую структуру. istream &manip-name(istream &stream) { // Текст программы. return stream; } Манипулятор ввода получает ссылку на поток, для которого он был вызван. Этот манипулятор должен вернуть ссылку на "свой" поток. Вот пример простого манипулятора вывода с именем setup(). Он устанавливает выравнивание по левому краю, делает ширину поля равной значению 10 и задает в качестве символа заполнителя знак доллара. #include <iostream> Помните: ваш манипулятор должен возвращать поток stream. В противном случае его нельзя использовать в ряде операций ввода и вывода. |
Нет комментариев. Оставить комментарий: |