passing as 'this' argument discards qualifier

1、问题描述

有这样一个函数

void setInfo(const std::map<std::string,std::string>& config)
{
  std::string a = config["aaa"];
}

2、编译现象

如标题

3、解释

config变量是一个const的,但是在内部函数里调用了这个变量的符号重载函数"[ ]",而我们规定const是不能被修改,但是调用这个函数就有被修改的风险,故编译报错

4、解决

可以在函数后面加一个const,或者把config前面的const去掉

posted @ 2020-09-22 15:11  朱小勇  阅读(4309)  评论(0编辑  收藏  举报