ВУЗ:
Составители:
Рубрика:
73
char fill();
char fill(char);
Манипуляторы.
Несмотря на гибкость и большие возможности управления формата-
ми с помощью компонентных функций класса ios, их применение доста-
точно громоздко. Более простой способ изменения параметров и флагов
форматирования обеспечивают манипуляторы.
Манипуляторами называются специальные функции, позволяющие
модифицировать работу потока. Особенность манипуляторов состоит в
том, что их можно использовать в качестве правого операнда
операции >>
или <<. В качестве левого операнда, как обычно, используется поток
(ссылка на поток), и именно на этот поток воздействует манипулятор.
Для обеспечения работы с манипуляторами в классах istream и
ostream имеются следующие перегруженные функции operator.
istream& operator>>(istream&(*_f)( istream&));
ostream& operator<<(ostream&(*_f)(ostream&));
При использовании манипуляторов следует включить заголовочный
файл <iomanip.h>, в котором определены встроенные манипуляторы.
Определение пользовательских манипуляторов.
Порядок создания пользовательского манипулятора с параметрами,
например для вывода, следующий:
1. Определить класс (my_manip) с полями: параметры манипулятора,
указатель на функцию типа
ostream& (*f)(ostream&,<параметры манипулятора>);
2. Определить конструктор этого класса (my_manip) с инициализа-
цией полей.
3. Определить, в этом классе дружественную функцию – operator<<.
Эта функция в качестве правого аргумента принимает объект класса
my_manip,
левого аргумента (операнда) поток ostream и возвращает поток
ostream как результат выполнения функции *f. Например,
typedef far ostream&(far *PTF)(ostream&,int,int,char);
class my_man{
int w;int n;char fill;
PTF f;
public:
//конструктор
my_man(PTF F,int W,int N,char FILL):f(F),w(W),n(N),fill(FILL){}
friend ostream& operator<<(ostream&,my_man);
};
ostream& operator<<(ostream& out,my_man my)
{return my.f(out,my.w,my.n,my.fill);}
73 char fill(); char fill(char); Манипуляторы. Несмотря на гибкость и большие возможности управления формата- ми с помощью компонентных функций класса ios, их применение доста- точно громоздко. Более простой способ изменения параметров и флагов форматирования обеспечивают манипуляторы. Манипуляторами называются специальные функции, позволяющие модифицировать работу потока. Особенность манипуляторов состоит в том, что их можно использовать в качестве правого операнда операции >> или <<. В качестве левого операнда, как обычно, используется поток (ссылка на поток), и именно на этот поток воздействует манипулятор. Для обеспечения работы с манипуляторами в классах istream и ostream имеются следующие перегруженные функции operator. istream& operator>>(istream&(*_f)( istream&)); ostream& operator<<(ostream&(*_f)(ostream&)); При использовании манипуляторов следует включить заголовочный файл, в котором определены встроенные манипуляторы. Определение пользовательских манипуляторов. Порядок создания пользовательского манипулятора с параметрами, например для вывода, следующий: 1. Определить класс (my_manip) с полями: параметры манипулятора, указатель на функцию типа ostream& (*f)(ostream&,<параметры манипулятора>); 2. Определить конструктор этого класса (my_manip) с инициализа- цией полей. 3. Определить, в этом классе дружественную функцию – operator<<. Эта функция в качестве правого аргумента принимает объект класса my_manip, левого аргумента (операнда) поток ostream и возвращает поток ostream как результат выполнения функции *f. Например, typedef far ostream&(far *PTF)(ostream&,int,int,char); class my_man{ int w;int n;char fill; PTF f; public: //конструктор my_man(PTF F,int W,int N,char FILL):f(F),w(W),n(N),fill(FILL){} friend ostream& operator<<(ostream&,my_man); }; ostream& operator<<(ostream& out,my_man my) {return my.f(out,my.w,my.n,my.fill);}
Страницы
- « первая
- ‹ предыдущая
- …
- 70
- 71
- 72
- 73
- 74
- …
- следующая ›
- последняя »