Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2011, 20:48   #1
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию C++. "Виртуальные друзья" класса.

Доброго времени суток!
Столкнулся с такой проблемой: по условию задачи необходимо реализовать виртуальные перегруженные операторые ввода/вывода в поток/из потока. Насколько я понимаю, оные операторы могут быть только друзьями класса, и тут и возникает вопрос: как сделать виртуальных друзей класса? Да, есть соображения создать две виртуальные функции, например, put() и out() и уже их использовать в перегрузке операторов. Идея вроде и не плоха, однако не могу понять, что должны возвращать соответствующие функции...прошу помощи!
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 26.01.2011, 20:58   #2
pacniwassano
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 81
По умолчанию

автор понимает, что такое виртуальные функции?
pacniwassano вне форума Ответить с цитированием
Старый 26.01.2011, 21:05   #3
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

да, это автор понимает
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 26.01.2011, 21:10   #4
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

friend virtual overload не проканает.
Но можно сделать вот так в базовом классе:
Код:
virtual ostream& output(ostream& s) const;
Код:
friend ostream& operator<<(ostream& s, const base& b) {
return b.output(s);};
Наследники соответственно смогут вызывать так:
Код:
cout << my_instance
P.S. Источник http://bytes.com/topic/c/answers/591...riend-operator
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 26.01.2011, 21:22   #5
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Спасибо, попробую.
А как быть с вводом?..
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 26.01.2011, 21:32   #6
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

>>
istream
cin
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 26.01.2011, 22:12   #7
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Большое спасибо, всё работает
Помог - жми весы

Последний раз редактировалось S1av0k; 27.01.2011 в 16:59.
S1av0k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая реализация собственного класса "vector" Arnezami Общие вопросы .NET 8 27.11.2010 22:51
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Delphi. Создание нового класса, его "предков". Krechet Помощь студентам 0 26.04.2009 15:52