如果我有一个抽象类,我们称它为“脊椎动物”,它有一个字段std::string name;
,它有一个纯虚方法
virtual void print(std::ostream&) const noexcept = 0;
,该方法将在子类中被覆盖并在operator<<
.
我了解了多态性是如何工作的,以及如何operator<<
在继承的类中实现。
我没有得到:
我不明白:如何operator<<
在使用虚拟打印功能的那个抽象类中实现一个。为什么这段代码不起作用?我的抽象类需要有operator<<
.
virtual void print(std::ostream&) const noexcept = 0;
std::ostream & operator<<(std::ostream & str, Member &obj)
{
return obj.print(str);
}
那是抽象类代码。