【发布时间】:2014-09-15 07:55:55
【问题描述】:
假设你已经正确地实现了
假设您有 Base 类,并从中衍生出 DerivedOne、DerivedTwo 等。然后在您的 main 中,您有一个指向各种派生类型对象的指针向量。大致如下:
void showItems(vector<Base*> items) {
for (int i = 0; i < items.size(); i++) {
cout << items[i];
}
cout << endl;
}
【问题讨论】:
-
你不能直接这样做;
<<只调用operator<<(std::ostream &, const Base &)。 -
@OliverCharlesworth 实际上,它调用了
operator<<( std::ostream& Base const* )。这很可能只调用类型转换,并输出void*。 -
@JamesKanze:啊,是的,我认为 OP 已进一步取消引用。
标签: c++ vector operator-overloading