C++ 奇异常数正确性错误
我有一个包含类的头文件。在该类中,我有这样一个函数:C++ 奇异常数正确性错误,c++,C++,我有一个包含类的头文件。在该类中,我有这样一个函数: 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()
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";
}
for(std::map::iterator mapit=DefUseMap.begin();mapit!=DefUseMap.end();++mapit,defIndex++)
{
流声明getID()
方法常量:
int getId() const
{
return Id;
}
然后可以通过常量引用调用该方法,操作符映射将数据存储在std::pair
中。这样就很难意外更改密钥并破坏元素的顺序
为了能够为const键调用GetID(),函数也必须声明为const:
int GetID() const;
一般规则是,如果只需要对对象进行const
访问,就要声明一个方法const
,即这个可以是const
指针,一切都可以正常工作。还要注意mutable
关键字,它表示即使在const
方法中也可以更改类成员。一个示例如果你想记录一个对象的最后访问时间。在这种情况下,访问时间戳将是一个<代码>可变的< /代码>成员,因此它可以从<代码> const GETTER方法更新。USER 127817——如果你觉得我的答案令人满意,请考虑接受它。谢谢!