Форум программистов, компьютерный форум CyberForum.ru

Перегрузка operator<< - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.83
Selendis
1 / 1 / 0
Регистрация: 15.02.2011
Сообщений: 43
17.02.2011, 00:10     Перегрузка operator<< #1
Доброе время суток.

Есть очередная задачка - перегрузить оператор вывода таким образом:

Есть три объекта разных классов - А а, В в, С с;

Нужно, чтобы при записи а << b << c; изменялось значение некоторых членов всех трех классов, ну грубо говоря, пусть там есть по одному члену типа float и пусть при такой записи вывода произойдет нечто вроде
b.f+=0.2*c.f;
a.f+=0.8*c.f;

А при любой другой записи - (b<<c<<a, c<<b<<a, b<<a<<c, a<<b<<a) - пусть проводится просто вывод каких-нибудь членов класса, не суть важно. Или даже ошибка за неправильный порядок членов в выводе.

Можно ли это вообще сделать, а если нельзя, то что требуется от этих трех объектов?

Точно известно, что речь про перегрузку вывода, а не перегрузку сдвига.
С перегрузкой я знаком, но вызывает затруднение именно такой порядок и вообще, наличие 3х объектов, о которых идет речь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2011, 00:10     Перегрузка operator<<
Посмотрите здесь:

C++ Перегрузка operator+
C++ перегрузка operator<<
Перегрузка operator= C++
C++ Перегрузка operator[][][]
C++ Перегрузка operator new
C++ Перегрузка operator->()
Перегрузка operator+ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2016, 08:38     Перегрузка operator<<
Еще ссылки по теме:

Перегрузка operator-> () C++
Перегрузка operator[]= C++
C++ Перегрузка operator<()
C++ Перегрузка operator=
Перегрузка operator[] C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4947 / 3023 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.04.2016, 08:38     Перегрузка operator<< #41
Stitch Igorek, во-первых, такую разницу можно списать на погрешность. Вы ведь не на операционной системе реального времени запускали код?
Во-вторых, не стоит два бенчмарка в один код пихать. Процессоры нынче умные, умеют и команды исполнять преждевременно, и переупорядочивать их, и переходы по-умному предсказывать, и кэш прогревать, и конвейеры у них длинные...
И всё равно, такая небольшая разница должна быть списана на погрешность измерений и работу в многозадачной среде.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
24.04.2016, 08:38     Перегрузка operator<<
Ответ Создать тему
Опции темы

Текущее время: 11:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru