C++ 操作员<&书信电报;在抽象类中,c++;

C++ 操作员<&书信电报;在抽象类中,c++;,c++,polymorphism,abstract-class,stream-operators,C++,Polymorphism,Abstract Class,Stream Operators,如果我有一个抽象类,让我们称它为“脊椎动物”,它有一个字段std::string名称并且它有一个纯虚拟方法 virtualvoid打印(std::ostream&)const noexcept=0将在子类中被重写,并在操作符中调用您试图返回打印的结果,它是无效的,但是操作符您试图返回打印的结果,它是无效的,但是操作符操作符操作符 virtual void print(std::ostream&) const noexcept = 0; std::ostream & operato

如果我有一个抽象类,让我们称它为“脊椎动物”,它有一个字段
std::string名称并且它有一个纯虚拟方法

virtualvoid打印(std::ostream&)const noexcept=0
将在子类中被重写,并在
操作符中调用您试图返回
打印的结果,它是
无效的
,但是
操作符您试图返回
打印的结果,它是
无效的
,但是
操作符
操作符
操作符
virtual void print(std::ostream&) const noexcept = 0;
std::ostream & operator<<(std::ostream & str, Member &obj)
{
    return obj.print(str);
}
class Vertebrate
{
    // ...
    virtual void print(std::ostream&) const noexcept = 0;
};

std::ostream& operator<<(std::ostream& stream, Vertebrate& obj)
{
    obj.print(stream);
    return stream;
}