是const(c ++)可选吗?

Dr *_*Deo 4 c++ const

根据我读过的一些教程,"const"声明使变量"常量",即后来无法改变.
但是我发现这个const声明会引起不便,因为编译器有时会出现类似
"cannot convert const int to int"
或类似的错误.

而且我发现自己也会因为删除它而作弊.

问题: 假设我在不改变源代码中的变量时要小心,我可以高兴地忘记这个const的东西吗?

提前致谢

Joh*_*itb 51

你是认真的吗?你为什么要放弃这样一个有用的功能只是因为你有时会犯错误?更好的尝试和学习避免错误,const并从您添加的大量帮助中受益,以确保您的代码正确.

当然,您可以告别语言提供的所有帮助,并告诉编译器不再告诉您代码中的错误.相反,您将不得不稍后询问调试器您的错误所在.不确定这是否更好.

  • +1"您可以让编译器现在告诉您,或者让调试器稍后告诉您." 非常好. (12认同)
  • +1好答案.它不仅是编译时的一个很好的帮助,它也是一种很好的文档形式.您可以看到哪些变量可以更改,哪些不可以,这可以为您节省大量阅读代码的时间. (2认同)

Bet*_*eta 14

在C++中,"const"可以应用于变量(使其不可更改)或函数(使其无法更改其他内容).

我对"const"的使用不仅仅是为了防止我的代码改变我的变量.这是为了防止一些白痴的代码改变我的变量(特别是如果这个白痴是我从现在开始的六个月),并防止我的代码改变一个蠢货留下暴露的关键变量(特别是如果这个白痴是我六个月前).

  • 因为上帝是我的见证.我也是,那个白痴. (6认同)

e8j*_*han 6

如果你小心,是的.但这是人类错误.此外,您不会给编译器提供围绕这些常量进行优化的机会.

您收到的错误消息是因为您尝试更改a const int.只需将值赋给(非常量)int,您可以根据需要进行更改.

Const帮助你,尝试将更多的东西洒在周围并听取编译器.这将有助于您生成更好的代码.

  • 在优化时,编译器通常不能使用`const`-信息作为辅助. (3认同)