1
だから私はBase
クラスがあります。基本抽象クラスでオーバーロードされた演算子をどのように呼び出す必要がありますか?
class Base
{
public:
std::ostream& operator << (std::ostream & out, const Base & base);
}
をそして、私は、オペレータが何をすべきかを定義している:
ostream& operator << (std::ostream & out, const Base & base)
{
return out << "output";
}
私はBase
を拡張Derived
クラスを持っていると私はDerived
が同じことをやりたい場合その挿入演算子が呼び出されたときにBase
というものがありますが、これを行う最善の方法は何ですか?そして、最善の方法では、コードを再利用しないことをお勧めします。
'仮想 'メソッドを試しましたか?'派生'が 'Base'とは異なる振る舞いをする場合にのみオーバーライドされますか? – moshbear
演算子の宣言が無効です。 – Xeo
'Base 'を参照渡ししているので(これは' Derived'でも可能で、仮想のものでも動作します)、一旦クラスから取り出せば、これはとにかく起こりませんか? (クラス内の '<<"演算子は 'aBase << stuff;'と言うが、ostreamsとは何の関係もないだろう)。 – cHao