Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-23 / 0 / 1
Регистрация: 22.11.2015
Сообщений: 60

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

01.12.2016, 10:52. Показов 858. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс "деканат", полем которого есть список студентов, объектов из класса "Студент". Как переопределяя операторы ">>" ""<<" вывести список студентов?

код из Деканат.cpp
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
ostream &operator <<(ostream &stream, Dekanat& obj)
{
    stream << "Name of dekan: " << obj.getName1() << endl;
    stream << "Tel: " << obj.getTel() << endl;
    stream << "Room: " << obj.getRoom() << endl;
    stream << "Number of student:" << Dekanat::n_student<< endl;
    stream << "List of student:" << "\n";
    for(int i=0;i<obj.listStud.size();i++)
     cout<<obj.listStud[i]<< endl;
    return stream;
};
//***************переозначення оператора потоку введення
istream &operator >> (istream &stream, Dekanat &obj)
{
    string n;
    string t;
    int r;
    cout << "Enter name of dekan: " << endl;
    stream  >>n;
    obj.setName1(n);
    cout << "Enter tel: " << endl;
    stream >>t;
    obj.setTel(t);
    cout << "Enter room: " << endl;
    stream>>r;
    obj.setRoom(r);
    cout << "Enter number of student(<=5):" << endl;
    stream >> Dekanat::n_student;
    cout << "Enter list of student:" << endl;
    
    for (int i = 0; i< Dekanat::n_student; i++)
    //stream >>;
    return stream;
}
 
Student.cpp
ostream &operator <<(ostream &stream, Student& obj)
{
    stream << "Name of Student: " << obj.getName()<< endl;
    stream << "Zalikovka : " << obj.getZalikovka() << endl;
    stream << "Course: " << obj.getCourse() << endl;
    stream << "Form of edukation:" << obj.getFormOfEducation() << endl;
    stream << "Stypendia:" << obj.getStypendia() << endl;
    stream << "GPA:" << obj.getGPA() << endl;
    stream << "Group ID:" << Student::groupID<< endl;
        return stream;
};
istream &operator >> (istream &stream, Student &obj)
{
    string n;
    string z;
    int c;
    int f;
    int s;
    int gpa;
 
    cout << "Enter name of Student: ";
    stream >> n;
    obj.setName(n);
    cout << "Enter zalikovka : ";
    stream>>z;
    obj.setZalikovka(z);
    cout << "Enter course:";
    stream>>c;
    obj.setCourse(c);
    cout << "Form of edukation: ";
    stream>>f;
    obj.setFormOfEducation(f);
    cout << "Stypendia: ";
    stream>>s;
    obj.setStypedia(s);
    cout << "GPA:";
    stream >> gpa;
    obj.setGPA(gpa);
    cout << "Group ID:";
    Student::groupID;
    return stream;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2016, 10:52
Ответы с готовыми решениями:

Перегрузка операторов потокового ввода-вывода
Пожалуйста, ответе на такой вопрос: почему при написании класса, при перегрузке операторов ввода-вывода, их обязательно нужно объявлять в...

Перегрузка потокового ввода/вывода
Вот сама перегрузка ostream&amp; operator&lt;&lt; (ostream&amp; out, Poli&amp; outstream) { out&lt;&lt;&quot;Степень полинома=&quot;&lt;&lt;outstream.n&lt;&lt;endl; ...

Перегрузка потокового ввода-вывода
Доброго времени суток!!! Возникла такая проблема: необходимо сделать перегрузку операций &lt;&lt; и &gt;&gt;. Вот что у меня есть: ...

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2016, 11:07
Первый оператор не работает, что ли?
0
-23 / 0 / 1
Регистрация: 22.11.2015
Сообщений: 60
01.12.2016, 18:58  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
ostream &operator <<(ostream &stream, Dekanat& obj)
{
stream << "Name of dekan: " << obj.getName1() << endl;
stream << "Tel: " << obj.getTel() << endl;
stream << "Room: " << obj.getRoom() << endl;
stream << "Number of student:" << Dekanat::n_student<< endl;
stream << "List of student:" << "\n";
for(int i=0;i<obj.listStud.size();i++)
cout<<obj.listStud[i]<< endl;
return stream;
};
в этой строчке ошибка
C++
1
cout<<obj.listStud[i]<< endl;
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2016, 19:13
Что за listStud()?
0
-23 / 0 / 1
Регистрация: 22.11.2015
Сообщений: 60
01.12.2016, 20:04  [ТС]
вектор студентов (объектов класса Студент)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2016, 20:09
Текст ошибки?
0
-23 / 0 / 1
Регистрация: 22.11.2015
Сообщений: 60
01.12.2016, 20:21  [ТС]
Error C2679 binary '<<': no operator found which takes a right-hand operand of type 'Student' (or there is no acceptable conversion)
0
 Аватар для SergioO
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
01.12.2016, 21:21

Не по теме:

Кликните здесь для просмотра всего текста
зачем такое городить?
структура
C
1
struct{};
Цитата Сообщение от alina--- Посмотреть сообщение
cout << "Enter name of Student: ";
stream >> n;
obj.setName(n);
cout << "Enter zalikovka : ";
stream>>z;
obj.setZalikovka(z);
cout << "Enter course:";
stream>>c;
obj.setCourse(c);
cout << "Form of edukation: ";
stream>>f;
obj.setFormOfEducation(f);
cout << "Stypendia: ";
stream>>s;
obj.setStypedia(s);
cout << "GPA:";
stream >> gpa;
obj.setGPA(gpa);
cout << "Group ID:";
Student::groupID;
return stream;
цикл короткий напрашивается
все сообщения убрать в заголовки.
Цитата Сообщение от alina--- Посмотреть сообщение
//***************переозначення оператора потоку введення
istream &operator >> (istream &stream, Dekanat &obj)
сильно...
Цитата Сообщение от alina--- Посмотреть сообщение
Как переопределяя операторы ">>" ""<<" вывести список студентов?
элементерно, только зачем переопределять? не пояснили?
C++
1
2
operator>>/*здесь переопределям*/
operator<<x;



Добавлено через 55 минут

Не по теме:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
cout << "\n Найдено cовпадений: " << S2.size();
        int j = 1;
        for (string s : S2) {
            cout << endl << j++ << ". " << s;
        };
вся прелесть С++ (для кого-то).
и подобный код может миллионов слов вывести.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
/*services and data*/
static const char **user_message = [" имя\n"," возраст:\n"," рост:\n"];
struct {
string 
firstName,
lastName, /*Address;*/
uint16 Age;
uint16 H;
};
create_student(){
student exempl;
for...
};
зачем учащимся дают такую лабуду - лучше бы научили подобное в SQL делать. у меня нервы не выдержали такую задачу - "часть класса". извините.
на С++ можно что-то делать, но не имитировать СУБД.




Добавлено через 2 минуты
Цитата Сообщение от alina--- Посмотреть сообщение
Error C2679 binary '<<': no operator found which takes a right-hand operand of type 'Student' (or there is no acceptable conversion)
вы в чем программируете? начнем с этого.
C++
1
std::operator>> /*вы так пробовали переопределять?*/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2016, 21:21
Помогаю со студенческими работами здесь

Перегрузка потокового ввода/вывода для класса с полем типа string
Возможно ли перегрузить &gt;&gt; и &lt;&lt; или придётся заменить переменную string на массив char? У меня ошибка появляется: &quot;бинарный...

Перегрузка операторов ввода и вывода
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class ComplexNumber { private: double a, b; ...

Перегрузка операторов ввода-вывода
Доброго времени суток! Почему перестал работать &gt;&gt; оператор для стандартного типа char. Перегруженная операция cin&gt;&gt;one возвращает...

Перегрузка операторов ввода\вывода
Вот такой простенький пример описан во многих постах, есть в некоторых видео но у меня в компиляторе mvs 2015, при компиляции выдает...

Перегрузка операторов ввода вывода
ребята болит уже голова)) main.cpp #include &quot;myStr.h&quot; int main() { myStr myS(&quot;ok&quot;); cout&lt;&lt;myS&lt;&lt;endl;//надо чтоб...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru