| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Перегрузка унарного оператора "<<" |
| Автор: EvilsInterrupt 20.6.2009, 10:20 | ||
| Я пишу класс C_FIleStream , в написаном ниже куске кода он известен как объект с именем "file_strm" Хочу перегрузить оператор "<<", чтобы можно из объекта закинуть в типы byte, word, dword и наоборот. Ниже кусок кода иллюстирует то, что хочу получить в итоге:
Прошу подмогнуть с реализацией. |
| Автор: andrew_121 20.6.2009, 10:34 | ||
|
| Автор: GoldFinch 20.6.2009, 10:36 | ||
он не унарный, он бинарный
|
| Автор: EvilsInterrupt 20.6.2009, 10:43 |
| респект орлы, огромное спасибо. Пойду пробовать ;) |
| Автор: W4FhLF 20.6.2009, 10:56 |
| EvilsInterrupt, а чем стандартный std::ostream не устраивает? |
| Автор: GoldFinch 20.6.2009, 11:08 | ||
| EvilsInterrupt, чтобы получить d1 << file_strm; надо вне класса писать
но както логичнее, file_strm>>d1; это более схоже с STL --------------- там более что часто надо писать stream>>x1>>x2>>x3; хотя можно сделать x1<<x2<<x3<<stream если будет istream& operator<<(DWORD& dst, istream& sin) { .... return sin;} |
| Автор: mes 20.6.2009, 11:42 | ||
Вы уверены ? |
| Автор: GoldFinch 20.6.2009, 13:31 |
| mes, не очень) |
| Автор: mes 20.6.2009, 13:41 |
Ваш способ не будет работать, так как уже в первой паре нет типа istream, a соответсвено эта перегруженная функция не применима. |
| Автор: GoldFinch 20.6.2009, 16:12 |
| mes, тогда x<<(y<<(z<<stream)); |
| Автор: bsa 20.6.2009, 16:43 |
| GoldFinch, ну это вообще изврат... |
| Автор: EvilsInterrupt 20.6.2009, 18:17 | ||
Пообщавшись с Lazin через аську, решил воспользоваться его советом:
чтобы делать так: BYTE b1, b2; WORD w1, w2; DWORD d1, d2; file_stream >> b1; file_stream >> w1; file_stream >> d1; file_stream << b2; file_stream << w2; file_stream << d2; на этом пока и остановлюсь |