C++ Advanced - 08. C++ OOP Inheritance and Polymorphism - Task 3 - Typed Stream
Здавейте, много се измъчих с тази задача. В while-a получавам грешка "binary '>>': no operator found which takes a left-hand operand of type 'std::istringstream' (or there is no acceptable conversion)". Мисля, че грешката ми е във виртуалния метод, но не съм сигурна каква точно е.
Ето го моят код: https://pastebin.com/pkppUi90
Виж коментарът ми от 17:46 за подробности, но накратко най-лесно е да проверяваш сейта на stream полето на класа:
Алтернативно, може да овърлоуднеш bool оператора за TypedStream:
Така ще можеш директно да използваш инстанции на класа в булеви изрази:
В тази тема съм писал малко повече за това.
Много благодаря! Сега обаче забелязах друга грешка. В main-a не трябва ли да има #include <vector>? Дава ми грешки на 22 ред и при извеждането на .readToEnd(). Когато сложа #include <vector> всичко се оправя и работи добре.
Инклудни vector в TypedStream.h. Така индиректно ще го инклуднеш и във всички други файлове, които инклудват TypedStream.
Здравей!
Темата е малко стара, но на мен ми се наложи да решавам тази задача и намерих твоето разяснение, без което най-вероятно нямаше да се справя.
Имам един въпрос - защо в тази задача ако се използва във функцията readToEnd()
хвърля грешка само за custom типа ни - в случая Vector2D,а за int и string е ок - това онзачава ли, че автоматично те си връщат bool, че е ок, малко съм объркан
Благодаря ти предварително за отделеното време!