我从网站上读了很多文章,它说const更有助于更好地理解来源,因为你有一个保险,价值是固定的。这是使用const的唯一原因吗?
答案 0 :(得分:0)
通过使用const
,您正在使用编译器来发现您何时尝试写入您不应该写的内容。我认为让编译器告诉我我做错了总是好的。此外,许多编译器在获得不会发生变化的信息时会更有效地进行优化。
答案 1 :(得分:-1)
这是一个很好的理由,但另一个原因是,当你使用引用时,无论它们是const还是not,都会产生很大的不同。例如
void f(string& ref);
void g(const string& ref);
string h();
f(h()); // illegal code
g(h()); // legal code
不同之处在于,您无法将临时绑定到非const引用的规则。 h
的返回值是暂时的,因此只有对g
的调用才是合法的。如果您有f
,则需要使用其他变量
string tmp = h();
f(tmp);