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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iandi
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 20
#1

Перегрузка оператора - C++

02.05.2012, 20:43. Просмотров 332. Ответов 4
Метки нет (Все метки)

Здравствуйте. Не могу разобраться, как перезагрузить оператор >>.
C++ (Qt)
1
2
int a;
cin >> a;
Надо, чтобы a умножалось на некое число, допустим, а*60. Как для этого надо передавать это число?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2012, 20:43     Перегрузка оператора
Посмотрите здесь:

Перегрузка оператора [] C++
C++ Перегрузка оператора []
C++ Перегрузка оператора +
Перегрузка оператора ‘=’ C++
C++ Перегрузка оператора %
Перегрузка оператора = C++
Перегрузка оператора = C++
C++ Перегрузка оператора <<
C++ Перегрузка оператора <
Перегрузка оператора = C++
C++ Перегрузка оператора <<
C++ Перегрузка оператора <=

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21784 / 10508 / 1705
Регистрация: 12.02.2012
Сообщений: 17,510
02.05.2012, 20:50     Перегрузка оператора #2
Мне кажется, что сначала нужно создать соответствующий класс...
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.05.2012, 21:02     Перегрузка оператора #3
Цитата Сообщение от iandi Посмотреть сообщение
Не могу разобраться, как перезагрузить оператор >>
никак.
для встроенных типов никак


а так можно
C++
1
2
3
4
   int a;
 
   cin >> a ;
   a *= 60;
iandi
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 20
02.05.2012, 21:05  [ТС]     Перегрузка оператора #4
Цитата Сообщение от PointsEqual Посмотреть сообщение
а так можно
C++
1
2
3
4
   int a;
 
   cin >> a ;
   a *= 60;
О этом варианте думал, но данных вводить надо много, и после каждого делать умножение не хотелось. Да и с перегрузкой на этом примере хотел разобраться.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.05.2012, 21:21     Перегрузка оператора #5
Цитата Сообщение от iandi Посмотреть сообщение
Надо, чтобы a умножалось на некое число, допустим, а*60. Как для этого надо передавать это число?
хм, по-моему такого нельзя и для своего типа сделать...

оператор ввода определяется так
C++
1
friend istream& operator>>(istream& is, cTest& ob);
правый операнд - должна быть неконстантная ссылка

а в
C++
1
2
cTest t;
cin >> (t * 60)
(t * 60) - константа

так что никак нельзя. Поправьте если не так
Yandex
Объявления
02.05.2012, 21:21     Перегрузка оператора
Ответ Создать тему
Опции темы

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