Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 2 / 0
Регистрация: 13.11.2018
Сообщений: 81
1

Перегрузка ввода и вывода

19.02.2019, 20:57. Показов 1602. Ответов 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
class Drob 
{
 protected:
 
    void Point(double top ,double down)
    {
        cout << top << '/' << down << " => " << (top / Drob1(down, top)) << '/' << (down / Drob1(down, top));
        if ((down / Drob1(down, top) == 1))
        {
            cout << " => " << (top / Drob1(down, top)) << endl;
        }
        cout << endl;
    }
public:
    double top;
    double down;
    double  value;
    void pointer(double top1, double down1) 
    {
        Point(top1, down1);
 
    }
    friend iostream& operator << (iostream& cin, Drob& result);
};
Drob operator +(Drob x, Drob y) 
{
    x.value = x.value + y.value;
    return x;
}
Drob operator -(Drob x, Drob y)
{
    x.value = x.value - y.value;
    return x;
}
Drob operator *(Drob x, Drob y)
{
    x.value = x.value * y.value;
    return x;
}
Drob operator /(Drob x, Drob y)
{
    x.value = x.value / y.value;
    return x;
}
iostream& operator >>(iostream& cin,  Drob& Drob) //тут ошибка
{
    cin >>Drob.value;
    return cin;
}
iostream& operator <<(iostream& cout, const Drob& result) // и тут 
{
    cout << result.value << "vot"<<endl;
    return cout;
}
int main()
{
Drob  A;
          cout << "Числитель" << endl;
            cin >> A.top;
          cout << "Знаменатель" << endl;
            cin >> A.down;
         A.pointer(A.top, A.down);
   Drob B;  
          cout << "Числитель" << endl;    
           cin >> B.top;
          cout << "Знаменатель" << endl;
           cin >>B.down;
         B.pointer( B.top, B.down);
        Drob result;
        Drob x;
        Drob y;
          cout << "Введите x=";
           cin >> x.value;
          cout << "Введите y=";
           cin >> y.value;
            result = x + y;
              cout << x.value<<endl;
            result = x - y;
              cout << result.value<<endl;
            result = x * y;
              cout << result.value << endl;
            result = x / y;
               cout << result.value << endl;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2019, 20:57
Ответы с готовыми решениями:

Перегрузка вывода и ввода
Здравствуйте прошу помочь ,написал программу в ней нужно перегрузить вывод и ввод ,как это можно...

Перегрузка ввода и вывода
Помогите пожалуйста перегрузить операцию ввода для шаблонного чтобы заполнить массив или подскажите...

Перегрузка операторов ввода/вывода
Вроде сделал, но не работает перегрузка оператора ввода. #include &quot;stdafx.h&quot; #include...

Перегрузка операции ввода/вывода
В лабораторной говорится: &quot;Перегрузить операции ввода и вывода 2 способами: внутренним и внешним&quot;....

1
Параллельный Кот
1901 / 824 / 349
Регистрация: 25.03.2016
Сообщений: 2,040
19.02.2019, 21:33 2
Лучший ответ Сообщение было отмечено Bogdan17 как решение

Решение

Bogdan17, зачем делать функцию дружественной, если все поля класса открытые? Классы istream и ostream не наследуются от iostream, это совсем не одно и то же. Указывайте соответствующие классы.
C++
1
2
3
4
5
6
7
8
9
istream &operator >>(istream &in,  Drob &drob) {
    in >>drob.value;
    return in;
}
 
ostream &operator <<(ostream &out, const Drob &result) {
    out << result.value << "vot"<<endl;
    return out;
}
И не переопределяйте стандартные идентификаторы, рискуете нарваться на новые ошибки.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2019, 21:33

Перегрузка оператора ввода ,вывода
Вообщем проблема такая есть класс в нем приват поля и перегружены 2 дружественных оператора ввода...

Шаблоны перегрузка ввода/вывода
#include &lt;iostream&gt; #include &lt;assert.h&gt; #include &lt;stdlib.h&gt; using namespace std; template...

Перегрузка файлового ввода-вывода
Здравствуйте! У меня вопрос такой вот: для файлового ввода-вывода сколько надо функций...

Перегрузка оператора ввода вывода
Здравствуйте, у меня проблема с перегрузкой операторов ввода и вывода, есть готовый код, в нем...


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

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

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