假设你已经实现了<<运算符是否正确,如何在派生类的向量上正确调用它?
假设你有类Base,并从它DerivedOne,DerivedTwo等。然后在你的主要你有一个指向各种派生类型对象的指针向量。有点像:
void showItems(vector<Base*> items) {
for (int i = 0; i < items.size(); i++) {
cout << items[i];
}
cout << endl;
}
答案 0 :(得分:7)
实施以下内容:
class Base
{
public:
virtual ostream& print(ostream&) const = 0;
};
ostream& operator <<(ostream& out, const Base& base)
{
return base.print(out);
}