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

сделать методом класса перегрузку оператора потокового ввода - C++

Восстановить пароль Регистрация
 
Roman_Baranov
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 7
12.05.2014, 08:32     сделать методом класса перегрузку оператора потокового ввода #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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include "stdafx.h" 
#include <iostream> 
#include <string> 
#include <clocale>   
#include <stdlib.h>
#include <Windows.h>
 
using namespace std;
class TSession
{
public:
    string surname;
    int math, chemistry, biology;
 
 
    TSession()
    {
        surname = "";
        math = 0;
        chemistry = 0;
        biology = 0;
    }
 
 
    TSession(string surname, int math, int chemistry, int biology)
    {
        surname = surname;
        math = math;
        chemistry = chemistry;
        biology = biology;
    }
 
 
    TSession(TSession &T)
    {
        surname = T.surname;
        math = T.math;
        chemistry = T.chemistry;
        biology = T.biology;
    }
 
 
    void Input(void)
    {
        cout << "\nВведите фамилию: ";
        std::cin >> surname;
        cout << "Введите оценку по математике: ";
        std::cin >> math;
        cout << "Введите оценку по химии: ";
        std::cin >> chemistry;
        cout << "Введите оценку по биологии: ";
        std::cin >> biology;
        return;
    }
 
 
    void Output(void)
    {
        cout << "\n\nФамилия: " << surname;
        cout << "\nМатематика: " << math;
        cout << "\nХимия: " << chemistry;
        cout << "\nБиология: " << biology << endl;
        return;
    }
 
    bool Debtor()
    {
        if (math < 3 || chemistry < 3 || biology < 3)
            return true;
        else
            return false;
    }
 
 
    void SredniyBall()
    {
        cout << endl << "средний балл ученика " << surname << " равен " << ((math + chemistry + biology) / 3);
    }
 
//============================================================
    //перегрузка оператора "равно"
    void operator = (TSession &T)//это позволяет выполнить C=B
    {
        surname = T.surname;
        math = T.math;
        chemistry = T.chemistry;
        biology = T.biology;
    }
    //перегрузка оператора "сравнить равно ли "
    bool operator ==(TSession &T)//это позволяет выполнить проверу B==D
    {
    if( surname == T.surname)
        if (math == T.math)
            if(chemistry == T.chemistry)
                if (biology == T.biology)
                    return true;
                else return false;
            else return false;
        else return false;
    else return false;
    }
    //перегрузка оператора друга потокового вывода 
    friend ostream&operator<<(ostream &stream, TSession &T) 
    {
        stream << "\n\nФамилия: " << T.surname;
        stream << "\nМатематика: " << T.math;
        stream << "\nХимия: " << T.chemistry;
        stream << "\nБиология: " << T.biology << endl;
        return stream;
    }
    //перегрузка оператора друга потокового ввода
    //===========================================
    //СДЕЛАТЬ МЕТОДОМ КЛАССА
    //===========================================
    //friend istream&operator>>(istream &stream, TSession &T)
    void cin ()
    {
        cout << "\nВведите фамилию: ";
        std::cin>> surname;
        cout << "Введите оценку по математике: ";
        std::cin >> math;
        cout << "Введите оценку по химии: ";
        std::cin >> chemistry;
        cout << "Введите оценку по биологии: ";
        std::cin >> biology;
    }
};
    
int main(void)
{
setlocale(LC_ALL, "Russian");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
const int n=2;
TSession A[n],B,C,D;
 
B.cin();//ввод первого студента
cout << B;//вывод первого студента
C = B;//приравниваю второго к первому
cout << C;//вывод второго студента
D.cin();//ввод третьего студента
if (B == D)//проверяем совпадает ли он с первым
cout << "B==D";//если совпадает то выводим B==D
else cout << "B!=D"<<endl;//а если не совпадает, то выводим B!=D
 
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 08:32     сделать методом класса перегрузку оператора потокового ввода
Посмотрите здесь:

C++ перегрузка оператора ввода вне класса.
Организовать перегрузку оператора (=) C++
C++ Как сделать в данной программе перегрузку оператора?
Перегрузка потокового оператора (<<). Выдает адрес вместо значения C++
Общие символы для двух строк(своего класса) через перегрузку оператора C++
Не выводит перегрузку оператора сложения C++
C++ Обеспечить перегрузку оператора возведения в степень (^) комплексных чисел
Реализовать перегрузку оператора индексации C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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