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

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

Восстановить пароль Регистрация
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.01.2013, 16:21     перезагрузка cin, cout #1
Помогите корректно перезагрузить эти два оператора!
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
Посмотрите здесь:

Не работают cin и cout C++
C++ НЕ находит cin cout
cin cout C++
Cin и cout не компилируется C++
C++ операторы cin, cout
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
373 / 344 / 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
373 / 344 / 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
Еще ссылки по теме:

Перегрузка cin/cout C++
C++ Cin cout
C++ Добавить cin и cout

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

Или воспользуйтесь поиском по форуму:
yoghurt92
373 / 344 / 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
Ответ Создать тему
Опции темы

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