假设您已经正确实现了 << 运算符,那么如何在派生类的 vector 上正确调用它?
假设您有 Base 类,从它衍生出 DerivedOne、DerivedTwo 等。然后在您的 main 中,您有一个指向各种派生类型对象的指针 vector 。类似的东西:
void showItems(vector<Base*> items) {
for (int i = 0; i < items.size(); i++) {
cout << items[i];
}
cout << endl;
}
最佳答案
像这样实现:
class Base
{
public:
virtual ostream& print(ostream&) const = 0;
};
ostream& operator <<(ostream& out, const Base& base)
{
return base.print(out);
}
关于c++ - 在 vector 中的派生类上调用重载的 << 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843195/