![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Elfet |
|
||||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Запутался с перегрузкой << и >> для потоков
Я хочу перегрузить их для своего класса, что бы можно было вводить и выводить динамический целоцисленный массив.
И для файлов так же:
Это сообщение отредактировал(а) Elfet - 8.9.2006, 12:28 |
||||
|
|||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Elfet, извинете, а в чем проблема? Если "запутался", то значит что-то пробовал, а если так - давай код, будем разбираться вместе
|
|||
|
||||
| Elfet |
|
||||||||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Вот так вот пытаюсь перегрузить операции
Чтоб работали вот так:
Ну а пока заменил вот такими методами:
Вот так мне не нравится
|
||||||||
|
|||||||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Elfet,В чем проблема так и не написал
Возвращать из оператора лучше ссылку на поток. Потом, не мешало бы при выводе добавлять какой-нибуть символ или код, который символизировал бы конец данный. А то получается, что ты не занешь сколько данных взять из потока при вводе. Увы не знаю, что именно у тебя stack, но если это стандартный контейнер, то не мешало бы делать resize()...т.к. мало инфы сказать что-то ещё трудно. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
stack - типа int *
|
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 8 Всего: 24 |
Если для перегрузки бинарного оператора используется функция-член, то первым операндом будет this. Поскольку при перегрузке << первым операндом является поток, то перегрузить << можно либо из класса ostream (который мы менять не можем), либо с помощью глобальной функции, дружественной для класса, который нужно вывести. Код будет примерно такой:
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
не ? PS Апздал Это сообщение отредактировал(а) Romikgy - 8.9.2006, 13:35 -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Ок! Спасибо!
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |