gpt4 book ai didi

c++ - 成员函数的“this”参数的类型为 'const' ,但我的函数实际上不是 'const'

转载 作者:行者123 更新时间:2023-12-01 14:40:18 26 4
gpt4 key购买 nike

<分区>

我有一个 C++ std::map我用它来存储有关连接组件的信息。这是我的 BaseStation 中的代码段类,这是非常基础的

//Constructor
BaseStation(string name, int x, int y){
id = name;
xpos = x;
ypos = y;
}

//Accessors
string getName(){
return id;
}

在我的主要代码中,我有一个 map 声明为

map<BaseStation, vector<string> > connection_map;

connection_map在 while 循环中更新如下,然后出于我自己的调试目的,我想转储 map 的内容。我将一个 BaseStation 对象附加到 map (作为键),作为值,我们有指向 BaseStation 对象的链接列表:

connection_map[BaseStation(station_name, x, y)] = list_of_links; 
list_of_links.clear();

for(auto ptr = connection_map.begin(); ptr != connection_map.end(); ++ptr){
cout << ptr->first.getName() << " has the following list: ";
vector<string> list = ptr->second;
for(int i = 0; i < list.size(); i++){
cout << list[i] << " ";
}
cout << endl;
}

这是我尝试通过 clang++ 编译代码时在 main 中遇到的错误:

server.cpp:66:11: error: 'this' argument to member function 'getName' has type
'const BaseStation', but function is not marked const
cout << ptr->first.getName() << " has the following list: ";

在 VSCode 中,cout ( cout << ptr->first.getName()) 处的工具提示突出显示如下:

the object has type qualifiers that are not compatible with the member 
function "BaseStation::getName" -- object type is: const BaseStation

我不明白发生了什么,因为 getName()函数绝对不是常量,我没有在任何地方声明我的 BaseStation object as const 要么。如果有人可以帮助我,那就太好了。谢谢!

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