| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > не понимаю что выводится на консоль |
| Автор: slutsker 17.7.2007, 08:11 | ||||
при выполнении:
получаю: 0012ff18 а если
выводится число из файла объясните пожалуйста откуда берется 0012ff18 в первом случае! |
| Автор: jonie 17.7.2007, 08:25 | ||||||||
что раскрывается в
тип возрата у d.operator>>() есть ifstream&. Вот его и выводит (ссылка есть тоже что указатель фактически, т.е. выводится адресс объекта типа ifstream). |
| Автор: archimed7592 17.7.2007, 11:39 | ||
| Выводится вовсе не адрес объекта ifstream. Никогда не задумывались, почему конструкция
Потому, что объекты этого типа неявно преобразуются в другой тип, который convertible to bool. Как правило это void * или C::*. Т.о. выводится то значение, которое получается при неявном преобразовании d к "чему-то". К чему не специфицированно. Гарантируется лишь то, что это "что-то" будет неявно преобразовываться к bool и после такого преобразования иметь значение true, если поток жив и false, если произошла ошибка. |