以下是代码的粗略示例,问题在于如何让DerivedOne和DerivedTwo有一个重载的<<运算符,但将这些对象存储在Base*的向量中。我想要实现的是,能够循环遍历对象向量并输出在DerivedOne和DerivedTwo中指定的信息。
vector<Base*> objects;
class Base
{
private:
object Data
public:
object getData() { return Data; }
};
class DerivedOne : public Base
{
}
class DerivedTwo : public Base
{
}
我知道有这个,但它对我的目的不起作用。
friend ostream &operator<<(ostream &stream, Object object)
{
return stream << "Test" << endl;
}
friend
声明吗?我不是很确定,但如果你这样做,ADL会为你找到正确的函数。 - KRyan