Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

перезагрузка cin, cout - C++

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

Помогите корректно перезагрузить эти два оператора!
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 16:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перезагрузка cin, cout (C++):

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

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

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

операторы cin, cout - C++
Здравствуйте! Написала элементарную программу: #include &lt;iostream&gt; using namespace std; int main() { cout&lt;&lt; &quot;Введите...

Cin и cout не компилируется - C++
Начал изучать С++, и возникли проблемы с cin и cout, пишет Undefined symbol, хотя std прописан. Если пишу std::cin то выдает 'cout' is...

Не работают cin и cout - C++
Компилю на С++. Впервые. Использую Borland C++ Builder 6.0 Прочитал много разных самоучителей, энциклопедий по С++ Создаю приложение...

7
Agent Smith
40 / 40 / 9
Регистрация: 24.11.2012
Сообщений: 200
10.01.2013, 16:34 #2
может перезагрузить?
0
tokar2
25 / 25 / 1
Регистрация: 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
yoghurt92
374 / 345 / 22
Регистрация: 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
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.01.2013, 17:17  [ТС] #5
Это если функция является другом класса, а если она является членом этого класса то как нужно записать?
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.01.2013, 17:19 #6
tokar2, так тебе нужно чтобы была как друг или как член класса?
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.01.2013, 17:22  [ТС] #7
yoghurt92, я просто учусь, и хочу посмотреть все варианты реализации!

Добавлено через 47 секунд
Пробую сам реализовывать, но что-то не получается ..
0
yoghurt92
374 / 345 / 22
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 17:51
Привет! Вот еще темы с ответами:

Ошибка на cout и cin - C++
немогу понять в чем ошибка, есть код программы, вроде бы все правильно написано, но возможно я где-то допустил ошибку, но почему-то в упор...

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

НЕ находит cin cout - C++
Вроде бы подключил заголовочные файлы. Почему не находит cin и cout они же вроде бы должны быть в iostream #include &lt;stdafx.h&gt; ...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.