Я перегрузил оператор ‹‹ в унаследованном классе, он работает нормально, однако, когда я пытаюсь перегрузить оператор >> , он показывает много ошибок. В чем моя ошибка?
class Base{
private:
virtual std::ostream& print(std::ostream&) const = 0;
virtual std::istream& read(std::istream&);
protected:
//atributes
public:
//other functions
friend std::ostream& operator << (std::ostream& os, const Base& b) {
return b.print(os);
}
friend std::istream& operator >> (std::istream& is, Base& bb) {
return bb.read(is);
}
};
class Inherited: public Base{
private:
//atributes
std::ostream& print(std::ostream& os) const {
//things I want to print
}
std::istream& read(std::istream& is){
//things I want to read
return is;
}
public:
//other functions
};
Определение istream как виртуального чистого (virtual...const = 0;) также не работает.