gpt4 book ai didi

c++ - 奇怪的 const 正确性错误

转载 作者:太空狗 更新时间:2023-10-29 23:42:10 26 4
gpt4 key购买 nike

我有一个包含类的头文件。在那个类中,我有一个像这样的函数:

class Definition
{
public:
int GetID()
{
return Id;
}

//Other methods/variables
private:
int Id;

}

当我尝试这样获取该 ID 时:

for (std::map<Definition, std::vector<bool> >::iterator mapit = DefUseMap.begin(); mapit != DefUseMap.end(); ++mapit, defIndex++)
{
stream << "Definition " << (*mapit).first.GetID() << " Def Use" << endl << "\t";
}

出现以下错误

CFG.cc:1145: 错误:将“const Definition”作为“int Definition::GetID()”的“this”参数传递会丢弃限定符

是不是因为我在映射中使用定义,并且不允许我调用映射定义上的方法?有没有办法取出该 ID 变量?

提前致谢

最佳答案

声明 getID()方法常量:

int getId() const
{
return Id;
}

然后这个方法可以被const引用调用,也就是operator<<()正在通过。

关于c++ - 奇怪的 const 正确性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609475/

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