- •1. Объектно-ориентированное программирование как методология проектирования программных средств.
- •1.2. Объект
- •Iarray a(10), b(25), c(45);
- •Int main(void)
- •2.1. Перегрузка имен функций
- •Int print(int);
- •Void print(int);
- •Int (*matrix)[10];
- •Void main(void)
- •Void incr(int &aa)
- •3.2 Объявление класса.
- •Имя_класса имя объекта;
- •Имя объекта. Имя элемента
- •Имя_объекта. Имя_метода( );
- •Имя класса *this;
- •Имя_класса (список формальных параметров)
- •Листинг 3.4
- •V_3d( double &X, double &y,double &z)
- •Void main(void)
- •Х:: х(const х&)
- •V_3d::v_3d(const v_3d& v1)
- •Void v_3d::print()
- •Сlass X
- •Void main (void)
- •4. Перегрузка операций
- •V_3d(double x1,double y1,double z1)
- •Void print();
- •Void main(void)
- •Void v_3d::print()
- •4.3.1. Использование дружественных функций при перегрузке операций
- •Void print();
- •Void main(void)
- •Void v_3d::print()
- •4.3.2.Особенности использования дружественных функций
- •Имя объекта. Имя_функции
- •Void f1( X& );
- •Void f2 ( X* );
- •Void main(void)
- •5. Производные классы
- •Int Bfunc( );
- •Int Xfunc( );
- •Int Efunc( X & x1 );
- •Istream
- •Iostream
- •Ifstream
- •С помощью манипуляторов – специальных операций, вставляемых непосредственно в поток вывода.
- •Int width( int w);
- •Int precision( int p);
- •Void main(void)
- •Void open(char* filename, int mode, int access);
- •If(!fout) {
- •7. Виртуальные функции
- •Circle a;
- •A.Build();
- •Virtual double a(double X)
- •Void main (void)
- •Void Graphics Object :: Build() { };
- •8.Шаблоны функций и классов
- •Void main(void)
- •Void Swap ( SwapType &X, SwapType &y)
- •Void main(void)
- •Int a, double b;
- •Int sloc,rloc;//начало и конец очереди
- •Void qput(t I); // помещение элемента в очередь
- •Int main(void)
- •1.Какой принцип ооп реализуется с помощью шаблонных функций и классов?
- •2.Когда целесообразно использовать шаблоны функций? Каков общий вид объявления шаблона функции?
Int width( int w);
позволяет задать ширину поля, равную w символов. Однако, если размер выводимого данного превосходит заданную ширину поля, то будет использоваться такая ширина поля, которая необходима для вывода этого данного.
С помощью функции precision() можно изменить количество цифр после десятичной точки при выводе значения типа float ( по умолчанию выводится шесть цифр). Прототип этой функции имеет вид:
Int precision( int p);
где p – это точность, т.е. число выводимых цифр после запятой.
По умолчанию, при заполнении поля вывода используются пробелы. Используя функцию fill(), можно изменить символ заполнения. Прототип этой функции:
char fill (char ch);
В листинге 6.2 приведен пример программы, которая иллюстрирует работу функций width(), precision() и fill().
Листинг 6.2.
#include <iostream.h>
main()
{
cout.width(10); // установка минимальной ширины поля
cout << "Привет" << '\n';//по умолчанию выравнивание по правому краю
cout.fill('%'); // установка символа заполнения
cout.width(10); // установка минимальной ширины поля
cout << "Привет" << '\n'; // по умолчанию выравнивание по правому краю
cout.setf(ios::left); // выравнивание по левому краю
cout.width(10); // установка минимальной ширины поля
cout << "Привет" << '\n'; // выравнивание по левому краю
cout.width(10); // установка минимальной ширины поля
cout << 123.234567 << '\n'; // по умолчанию выводится 6 цифр после точки
cout.width(10); // установка минимальной ширины поля
cout.precision(3); // установка точности
cout << 123.234567 << '\n'; // точность равна 3 цифры после точки
return 0;
}
Результаты работы этой программы
Привет
%%%%Привет
Привет%%%%
123.234567
123.235%%%
Следует обратить внимание на то, что ширина поля устанавливается перед каждым оператором вывода.
6.3 Манипуляторы ввода – вывода
Являются специальными функциями формата ввода-вывода, которые могут находиться в теле оператора ввода-вывода, в отличие от функций-членов ios. Их использование может быть более удобным, чем использование флагов формата ios и функций, рассмотренных в п.6.2. Манипуляторы проще в использовании и позволяют писать программы более компактно.
Наиболее часто используемые манипуляторы показаны в табл.6.2. Для доступа к манипуляторам с параметрами (таким, как setw()), необходимо включить в программу файл iomanip.h. В этом нет необходимости при использовании манипуляторов без параметров.
Примечание.
Манипулятор ввода-вывода влияет только на поток, который является частью выражения ввода-вывода, содержащего манипулятор.
В листинге 6.3 показан пример использования манипуляторов для форматирования операций вставки в поток.
Таблица 6.2. Манипуляторы ввода-вывода.
Манипулятор |
Назначение |
Ввод-вывод |
dec |
Вывод в десятичной системе счисления. |
Вывод |
endl |
Вывод символа новой строки и флэширование (очистка буфера потока) |
Вывод |
ends |
Вывод нуля (NULL) |
Вывод |
flush |
Флэширование |
Вывод |
hex |
Вывод в шестнадцатеричной системе счисления. |
Вывод |
oct |
Вывод в восьмеричной системе счисления. |
Вывод |
setfill(int ch) |
Устанавливает символ заполнения ch. |
Вывод |
setprecision( int p) |
Задает число цифр после десятичной точки |
Вывод |
setw(int w) |
Задает w позиций ширины поля |
Вывод |
ws |
Пропуск начальных побелов |
Ввод |
Листинг 6.3.Использование манипуляторов при выводе данных.
#include <iostream.h>
#include <iomanip.h>
