![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 17.02.2009
Сообщений: 25
|
![]()
pu4koff, я не копировал код, просто для себя хочу понять.
я хотел для cout перегрузить, ну тоесть вводишь for(int i=0;i<n;i++){ cout<<mas[i]<<ler[i]; } а выводит только то где ler[i] ==10; Последний раз редактировалось z3rg; 19.03.2009 в 23:00. |
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,069
|
![]()
откуда тогда в вашем классе взялось?
ostream& operator<<(ostream& s, const MY_TYPE& t) { s << t.a << endl << t.b; return s; } ![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 17.02.2009
Сообщений: 25
|
![]()
pu4koff, понятно.
Спасибо большое всем что помогли. // хотел спросить чуть не забыл что обозначает ostream& Последний раз редактировалось z3rg; 19.03.2009 в 23:20. |
![]() |
![]() |
![]() |
#14 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Реализовать можно, только если функция перегрузки будет членом класса.
|
![]() |
![]() |
![]() |
#15 |
Регистрация: 26.02.2010
Сообщений: 3
|
![]()
Re: Перегрузка ввода/вывода в/из потока
А у меня с перегрузкой операторов ввода/вывода такая проблема простейший класс Код:
Код:
Код:
пишу Код:
все работает окей. Возникает вопрос, то ли лыжы не едут, то ли я еду по асфальту?
Ты не всегда прав, если ты думаешь что это не так, прочитай сначала...
|
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,069
|
![]()
Попробуйте так поправить:
Код:
|
![]() |
![]() |
![]() |
#17 |
Регистрация: 26.02.2010
Сообщений: 3
|
![]()
точно, это помогло, убрало первую ошибку
а вот вторая осталась, хотя вроде всё правильно, но чтото ему не нравиться. error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
Ты не всегда прав, если ты думаешь что это не так, прочитай сначала...
|
![]() |
![]() |
![]() |
#18 |
Регистрация: 26.02.2010
Сообщений: 3
|
![]()
Всё, перегрузил функцию GetValue, теперь всё нормально, что ж я раньше не додумался...
Код:
Ты не всегда прав, если ты думаешь что это не так, прочитай сначала...
|
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
![]()
раз операторы ввода вывода - друзья класса, использовать методы GetValue - нет необходимости, добавив неконстантный метод, возвращающий ссылку на данные - вы нарушили инкапсуляцию.
операторы ввода - вывода - как правило свободные ф-ии, и если они работают с какими-то обьектами, то они это делают через виртуальные ф-ии у этих обьектов (что-нить типа Load(std: ![]() ![]() Автор поста изначально неправильно хочет определить оператор вывода. В нем не должно быть логики, решающей, выводить в поток обьект или нет. Оператор вывода должен выводить обьект в поток и все. Логика должна быть в специально написанной ф-ии, которая выводит массив обьектов или, если юзать стльные алгоритмы - должен быть написан предикат, который и будет решать, надо ли выводить обьект в поток или нет. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задачка перегрузка оператора + | z3rg | Общие вопросы C/C++ | 7 | 17.03.2009 13:23 |
Перегрузка оператора + (С++) | MjRed | Помощь студентам | 1 | 15.12.2008 18:57 |
Перегрузка оператора | Crucian | Общие вопросы C/C++ | 2 | 22.10.2007 09:44 |
Использование оператора условия | Virtson | Microsoft Office Access | 2 | 15.12.2006 16:13 |