【发布时间】:2017-06-06 23:40:10
【问题描述】:
我在继承的类中重载了运算符 > 时,它会显示很多错误。 我的错误是什么?
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 pure (virtual...const = 0;) 也不起作用。
【问题讨论】:
-
请提供MCVE,我们可以尝试在该 MCVE 上编译来自您的编译器的错误的准确文本。
标签: c++ class inheritance operator-overloading istream