Помимо установки и сброса флагов, можно установить ширину поля, точность представления и задать символ-заполнитель (по умолчанию — пробел). Эти методы имеют следующие прототипы (см. п. п. 27.4.4.2 в [1]):
Уже по названиям легко догадаться о назначении методов:
• метод рrесision () позволяет получить и задать точность — количество цифр после десятичной точки;
• метод width() позволяет получить и задать ширину поля (вывода);
• метод f i 11 () позволяет получить и задать символ-заполнитель.
Методы precision() и fill О влияют на все операции вывода. Это означает, что один раз установленная точность не изменяется до следующего вызова мето-да preci si on (). А вот метод wi dth () работает только для ближайшей операции вывода <<. Например:
В результате выполнения этих операторов на экран будет выведено —123; 15
Если бы ширина поля задавалась сразу для всех операций <<, на экране появилась бы следующая строка:
—123 :—15
Если выводимое значение не помещается в заданной ширине поля, то все равно выводится значение целиком, например:
Упражнения
1. Создать класс Paiг (пара целых чисел); определить метод умножения на число и операцию сложения пар (a,b) + (c,d) = (а + Ь, с + d). Определить класс-наследник Money с полями: рубли и копейки. Переопределить операцию сложения и определить методы вычитания и деления денежных сумм.
2. Определить класс Pai г с полями типа double. Реализовать операции сложения пар и умножения на число как в упражнении 1. Определить производный класс Complex и реализовать методы умножения (а, Ъ) (с, d) = (ас - bd, ad + be) и вычитания (а, Ь) - (с, d) = (а - Ь, с - d ).
3. Реализовать базовый класс-оболочку Number для числового типа double с набором арифметических операций, а также операций возведения в произвольную степень и сравнения. Реализовать класс-наследник с операциями получения обратной величины, вычисления произвольного корня, вычисления натурального, десятичного и двоичного логарифмов, вычисления произвольной показательной степени.
4. Создать класс Triad (тройка целых чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день.
Переопределить методы увеличения полей на 1 и определить метод увеличения даты на п дней.
5. Использовать класс Bi tSt г i ng (см. упражнение 9 в главе 2) в качестве базового. Реализовать класс-наследник AdvancedBitString, осуществив в классе-наследнике перегрузку операций. Определить методы сдвига влево и вправо на заданное количество битов.
6. Создать базовый класс Array — динамический массив типа unsigned char (см. главу 5). Реализовать конструктор инициализации, задающий количество элементов и начальное значение (по умолчанию — 0). Реализовать методы доступа к отдельному элементу, перегрузив операцию индексирования operator!]. При этом должна выполняться проверка индекса на допустимость. Определить класс Decimal (см. упражнение 5 в главе 5) как класс-наследник от класса Array.
Опубликовал Kest
May 04 2014 20:31:52 ·
0 Комментариев ·
4846 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.