为什么主动使用const? C ++

时间:2013-12-07 08:24:57

标签: c++ const

我从网站上读了很多文章,它说const更有助于更好地理解来源,因为你有一个保险,价值是固定的。这是使用const的唯一原因吗?

2 个答案:

答案 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);