gpt4 book ai didi

c++ - const_iterator 遍历引用的指针列表

转载 作者:行者123 更新时间:2023-11-28 01:20:10 30 4
gpt4 key购买 nike

有件事我实在想不明白。以下情况:

测试.h文件:

class Test{
public:
const std::list<Item*>& getItems() { return m_items; }
void showSomething() const;
private:
std::list<Item*> m_items;
}

测试.cpp文件:

void Test::showSomething() const{
for (std::list<Item*>::const_iterator item_it = getItems().begin(); item_it != getPlayers().end(); item_it++) {
doSomething();
}
}

Visual Studio 告诉我,这不起作用,并在 for 循环中为 getItems() 添加了下划线。该错误翻译为“类型限定符与成员函数 getItems 不兼容...对象是常量测试”。

我知道 getItems() 返回一个对 Item-Pointers 列表的常量引用。但是为什么我不能在 for 循环中使用它呢?

最佳答案

你错过了 const

试试这个:

const std::list<Item*>& getItems() const { return m_items; }

你需要常量,因为 showSomething 方法,从中调用 getItems 是常量。

关于c++ - const_iterator 遍历引用的指针列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718351/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com