我正在尝试重载<<运算符,以便打印出类指针列表的整个内容。
这是我得到的:
friend ostream& operator<<(ostream& out, listClass &obj){
list<baseClass*>::iterator it;
for (it = obj.listB.begin(); it != obj.listB.end(); ++it){
out << *it << endl;
}
return out;
}
我知道如果列表是简单的类对象而不是类指针,那么这段代码可以正常工作,但现在它正在打印列表元素的地址。我试着用我的生活在谷歌上找到答案但却一无所获。
如何获取类指针迭代器的内容?
感谢您的时间!
编辑:显然*(*它)产生正确的结果。这是对的吗?
答案 0 :(得分:0)
std::list
迭代器指向到列表中的项目。
要访问该项目,您将取消引用指针:
iterator->item;
或
(*iterator).item;
迭代器与指针有很多共同之处。