【发布时间】:2015-04-23 04:51:41
【问题描述】:
以下代码编译失败:
void func(const QList<int>& list){
auto& elem = list[0];
}
问题是我无法将 const 元素绑定到非 const 引用。以下代码有效:
const auto& elem = list[0];
有人可以解释为什么将列表传递为const 会使所有元素都成为const?
【问题讨论】:
-
如果您可以修改列表中的元素,那不是很
const,对吗? C++ 复合对象经常尝试模仿struct的默认行为,也就是说,如果对象是const,那么该对象的元素也是const。