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

Перегрузка cout - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти р! http://www.cyberforum.ru/cpp-beginners/thread969727.html
Найти р!, где р – каждое третье простое число в диапазоне от n1 до n2 (функциями оформить определение факториала и проверку, является ли число простым).
C++ Вводится последовательность Вводится последовательность из N вещественных чисел. Определить является ли последовательность строго возрастающей. http://www.cyberforum.ru/cpp-beginners/thread969726.html
Как правильно подключить curl библиотеку? C++
Здравствуйте, я хотел в своем проекте использовать библиотеку curl, для этого я: 1. Скачал архив з оф. сайта. 2. Затем по инструкции в архиве, используя nmake скомпилировал исходники, после этого...
консольный чат с использованием socket C++
есть сервер и пару клиентов как можно организовать чат? если использовать стандартные функции типа send and recv возникают проблемы, так как клиент не может одновременно принимать и отсылать...
C++ Какая разница? http://www.cyberforum.ru/cpp-beginners/thread969705.html
Я уже довольно долго изучаю С++ и столкнулся с проблемой: чем отличается cout от printf, так как я всегда пользовался cout, не могу понять в чем разница между ними и что лучше использовать.
C++ Списки. Объявление, заполнение добавление и работа с ними Подкиньте faq по этим разделам, желательно досканальный. Это же структуры, я правильно понимаю? подробнее

Показать сообщение отдельно
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
05.10.2013, 19:59
Цитата Сообщение от seruy-t Посмотреть сообщение
Мимино, Если не трудно, объясните, пожалуйста, в чем ошибка
1. Функция ostream &operator << () обращается к закрытым элементам данных класса, и при этом она не является элементом класса, соответственно доступа у нее к этим элемента быть не может. Чтобы этот доступ появился, функцию нужно объявить как дружественную.
C++
1
2
3
4
5
6
7
8
9
class person
{
friend ostream &operator << (ostream &, person &); // лучше сделать (ostream &, const person &)
private:
    string name;
    string surname;
    unsigned int age;
public:
........
2. У Вас функция получает ссылку на объект ostream, а возвращает объект ostream, хотя по всей логике вещей должна возвращать эту же полученную ссылку на объект. Поэтому вместо
C++
1
ostream operator<<(ostream &os,  person &prs)
нужно
C++
1
ostream &operator<<(ostream &os,  person &prs)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru