私の場合、< <オペレータが正しく呼び出されていない場合に、少し問題があります。バーチャル<< operator
class SomeInterface
{
friend std::ostream& operator<<(std::ostream& str, const SomeInterface& data);
protected:
virtual void print(ostream& str) const = 0;
};
inline std::ostream& operator<< (std::ostream& o, SomeInterface const& b)
{
b.print(o);
return o;
}
}
呼び出すコードは次のようになります::
SomeInterface* one = new someConcrete();
cout << one;
私はインターフェイスで呼び出さなるだろう期待していた< <オーバーロードされた関数ではなく、ましてや派遣
この
は私が持っているものです派生クラスに渡します。
おかげで...私はそれはのようなアドレスを印刷した後に推測している必要がありますごみ。 –