С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
1

перезагрузка cin, cout

10.01.2013, 16:21. Показов 3791. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите корректно перезагрузить эти два оператора!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
class Fractions{
 
public:
  Fractions(){num=0;drob=0;}
  void Set(char *);
  void Show();
  istream &operator>>(istream &,const Fractions &);
  ostream &operator<<(ostream &input,Fractions &);
private:
 int num;
 int drob;
 
};  
      
istream &operator>>(istream &input,const Fractions &ObjA)
{
        input.ObjA.num;
        return input;
        }
ostream &operator<<(ostream &output,Fractions &ObjA)
{
        output<<ObjA.num;
        return output;
        }
 
 
int main()
{
    Fractions ObjA,ObjB,ObjC;
    
    cin>>ObjA;
    cout<<ObjA;
    
    system("pause>0");
    return 0;
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2013, 16:21
Ответы с готовыми решениями:

Cin cout
записать через сin cout printf (&quot;a=&quot;, i); scanf (&quot;%f&quot;, &amp;a);

Cout cin
Ребят, мы пишем cout &lt;&lt; .... и cin &gt;&gt; .... Как называются эти операторы &lt;&lt; и &gt;&gt;? И что они делают?

cin cout
Как выводить через cin cout а не через printf. А то получается ерунда #include &lt;stdio.h&gt;...

Добавить cin и cout
#include &lt;iostream&gt; using namespace std; struct Node { int numer; //информационный элемент...

7
40 / 40 / 32
Регистрация: 24.11.2012
Сообщений: 200
10.01.2013, 16:34 2
может перезагрузить?
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
10.01.2013, 17:03  [ТС] 3
Возможно и перегрузить)

Добавлено через 8 минут
А что здесь не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
istream &operator>>(Fractions &Obj)
{
        cin>>Obj.num;
        cin>>Obj.drob;
        return *this;
        }
ostream &operator<<(Fractions &Obj)
{
        cout<<Obj.num;
        cout<<Obj.drob;
        return *this;
        }
Добавлено через 19 минут
Переделал на дружескую функцию, но проблема осталась. Какой оператор нужно вписать в этих функциях?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
istream &operator>>(istream &inp,Fractions &Obj)
{
        inp./*---*/Obj.num;
        inp./*---*/Obj.drob;
        
        return inp;
        
        }
ostream &operator<<(ostream &out,Fractions &Obj)
{
        out./*---*/Obj.num;
        out./*---*/Obj.drob;
        
        return out;
        
        }
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
10.01.2013, 17:12 4
tokar2, я бы сделал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
istream &operator>>(istream &inp,Fractions &Obj)
{
        inp >> Obj.num;
        inp >> Obj.drob;
        
        return inp;
        
        }
ostream &operator<<(ostream &out,Fractions &Obj)
{
        out << Obj.num << endl;
        out << Obj.drob << endl;
        
        return out;
        
        }
1
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
10.01.2013, 17:17  [ТС] 5
Это если функция является другом класса, а если она является членом этого класса то как нужно записать?
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
10.01.2013, 17:19 6
tokar2, так тебе нужно чтобы была как друг или как член класса?
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
10.01.2013, 17:22  [ТС] 7
yoghurt92, я просто учусь, и хочу посмотреть все варианты реализации!

Добавлено через 47 секунд
Пробую сам реализовывать, но что-то не получается ..
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
10.01.2013, 17:51 8
tokar2, я понял, я сам учусь, сейчас посмотрю как можно сделать

Добавлено через 13 минут
tokar2, если мне память не изменять, то не получиться сделать ее членом класса, когда ты перегружаешь как дружественную:
C++
1
friend ostream &operator<<(ostream &, Fractions &Obj)
то в main генерируется вызов
C++
1
operator<<(cout, ObjA)
и все работает прекрасно
А если попытаться сделать ее членом класса, то происходит ошибка "слишком много операторов для этой функции", видно как член класса она требует только одного аргумента... поэтому не получится сделать ее членом класса... может и есть способы извернуться, но я их не знаю... может кто-то более компетентный подскажет

Добавлено через 14 минут
tokar2, в книге Дейтелей сказано: перегруженная операция << должна иметь левый операнд ostream &, так что она не может быть функцией-элементом, аналогично и с операцией >>
1
10.01.2013, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2013, 17:51
Помогаю со студенческими работами здесь

НЕ находит cin cout
Вроде бы подключил заголовочные файлы. Почему не находит cin и cout они же вроде бы должны быть в...

операторы cin, cout
Здравствуйте! Написала элементарную программу: #include &lt;iostream&gt; using namespace std;...

Перегрузка cin/cout
Надо перегрузить операторы для некого класса. У меня есть два базовых класса, в одном 2 поля, в...

Ругается на cin cout
Где для char все ок. для int ругается. Что зрабиць? #include &lt;iostream.h&gt; #include &lt;iomanip.h&gt;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru