打印类指针 c++ 列表中的元素

Printing elements from a list of class pointers c++

本文关键字:元素 列表 c++ 指针 打印      更新时间:2023-10-16

我正在尝试重载<<运算符,以便它打印出类指针列表的全部内容。

这是我得到的:

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;
    }

我知道如果列表是简单的类对象而不是类指针,则此代码可以正常工作,但是由于现在是*,它打印了列表元素的地址。我一生都在谷歌上找到答案,但一无所获。

如何获取类指针迭代器的内容?

谢谢你的时间!

编辑:显然*(*它)产生正确的结果。这是对的吗?

std::list迭代器指向列表中的项目。

要访问该项目,您需要取消引用指针:

iterator->item;

(*iterator).item;

迭代器与指针有很多共同点。