我有一个小问题,我的 << 运算符没有被正确调用。
这就是我所拥有的:
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;
我希望在接口上调用的 << 重载函数不是,更不用说分派到派生类了。