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去掉


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM