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

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

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

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

10.01.2013, 16:21. Просмотров 931. Ответов 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;
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 16:21     перезагрузка cin, cout
Посмотрите здесь:

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++
Компилю на С++. Впервые. Использую Borland C++ Builder 6.0 Прочитал много разных самоучителей, энциклопедий по С++ Создаю приложение...

операторы 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++
#include &lt;iostream&gt; using namespace std; struct Node { int numer; //информационный элемент int pos; //информационный...

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

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

Добавлено через 47 секунд
Пробую сам реализовывать, но что-то не получается ..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 17:51     перезагрузка cin, cout
Еще ссылки по теме:

NetBeans, не работают cin/cout - C++
как сделать что бы работали cin cout для компилятора MinGW

Стрелки после cout и cin - C++
Здравствуйте! Недавно начал изучать язык С++, и решил попробовать написать чёнить. Решил сделать программу ищущую разницу между чисел ...

cout cin в одну строку - C++
cout&lt;&lt;&quot;name: &quot;&lt;&lt;endl; cin&gt;&gt;Name; Хочу добиться следующего результата name: Name, но получается cout на одной строчку cin на другой. ...

cin, cout, endl не определены - C++
Всем здрасте=) Есть исходник, он работает и всё с ним отлично, мне необходимо его обфусцировать(т.е. зашифровать путём изменения имен...

Перегрузка операторов cout and cin - C++
Нужна помощь) Вот что есть: class Dot { public: float x; float y; }; class Circul


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

Или воспользуйтесь поиском по форуму:
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.01.2013, 17:51     перезагрузка cin, cout #8
tokar2, я понял, я сам учусь, сейчас посмотрю как можно сделать

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

Добавлено через 14 минут
tokar2, в книге Дейтелей сказано: перегруженная операция << должна иметь левый операнд ostream &, так что она не может быть функцией-элементом, аналогично и с операцией >>
Yandex
Объявления
10.01.2013, 17:51     перезагрузка cin, cout
Ответ Создать тему
Опции темы

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