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

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

14.06.2014, 22:54. Показов 1408. Ответов 4
Метки нет (Все метки)

Доброго времени суток!!!
Возникла такая проблема: необходимо сделать перегрузку операций << и >>.
Вот что у меня есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
friend istream& operator>>(istream& stream, worker& p)
    {
        cout<<"\nИмя кадра : ";
        stream>>p.name;
        cout<<"\nНомер кадра : ";
        stream>>p.position;
        cout<<"\nРазряд кадра : ";
        stream>>p.age;
        return stream;
    };
    friend ostream& operator<<(ostream& stream, worker& p)
    {
        stream<<'\n'<<p.name;
        stream<<'\n'<<p.position;
        stream<<'\n'<<p.age;
        return stream;
    };
И вот так вызываю в main():
C++
1
2
cin>>ma2;
cout<<ma3;
И получаю такую ошибку:
C++
1
2
main.cpp:46: error: no match for 'operator>>' in 'std::cin >> ma2'
main.cpp:49: error: no match for 'operator<<' in 'std::cout << ma3'
Помогите разобраться.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2014, 22:54
Ответы с готовыми решениями:

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

Перегрузка операторов потокового ввода вывода
Есть класс &quot;деканат&quot;, полем которого есть список студентов, объектов из класса &quot;Студент&quot;. Как...

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

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

4
7158 / 6133 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
14.06.2014, 23:05 2
ma2 и ma3 как объявлены?
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
14.06.2014, 23:10  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
ma2 и ma3 как объявлены?
C++
1
massiv ma2(10);
Там везде ma2 должно быть, но ошибки те же
0
7158 / 6133 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
14.06.2014, 23:18 4
Лучший ответ Сообщение было отмечено Vashtanerada как решение

Решение

Внимательно посмотри на operator, второй параметр указан worker, а ma2 у тебя massiv. Поэтому и не работает.
1
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
14.06.2014, 23:27  [ТС] 5
Цитата Сообщение от nmcf Посмотреть сообщение
второй параметр указан worker, а ma2 у тебя massiv
Огромное вам спасибо!!!
Вечно глупые ошибки
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2014, 23:27

Функции потокового ввода/вывода
Подскажите, пожалуйста, чем отличается fwrite/fread от fprintf/fscanf?

Библиотека потокового ввода/вывода
А верно ли, что данная библиотека является вещью абсолютно бесполезной для Windows-программирования...

Итераторы потокового ввода/вывода stl
Возник такой вопрос при изучении stl. Берем файл, из которого нужно считать данные, через copy...

Вызов функции потокового ввода-вывода со всеми параметрами
Всем здравствуйте. В классе fstream есть функция void open(const char *fileName, int mode,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru