抽象クラスがある場合、それを「Vertebrate」と呼びましょう。それにはフィールドがあり、子クラスでオーバーライドされて呼び出される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);
}
それが抽象クラスのコードです。