大师到处告诉我们const一切,除非我们需要对其进行修改,但标准使一切可变的,直到我们宣布它 const.
我在这里遗漏了什么,或者这是一个矛盾吗?const根据专家(其中一些人可能设计标准),默认情况下,为什么不是C++类型,默认情况下应该制作 const?
Mik*_*our 14
除非我们需要修改它,否则无处不在的大师告诉我们const的所有内容,
这是十年或两年的传统智慧,是的.
然而标准使一切都变得可变,直到我们声明它为const.
该标准是从大约五十年前开发的语言发展而来的,当时,正确性,甚至类型检查在很大程度上被认为只是学术兴趣.
我在这里遗漏了什么,或者这是一个矛盾吗?
这不是一个矛盾; 只是一种语言不起作用,有些人会说它应该如何.您仍然可以(并且应该)const在适当的时候声明事情,我们只需要忍受一种不会促使我们走向安全实践的语言.
为什么
const默认情况下不是C++类型?
因为改变语言的这一基本方面将打破所有现有代码.这是一个更大的问题,而不是略微减少错误的范围.
Naw*_*waz 13
除非我们需要修改它,否则无处不在的大师告诉我们const的所有内容,
这对我来说很有意义.不变性是一个非常高尚的想法.
Rust是一种新语言(由Mozilla开发),默认情况下,变量是不可变的.如果你希望你的变量是可变的,那么你应该通过使用与C++完全相反的关键字使其显式可变mut - 在C++中,你必须通过使用关键字明确地使事物不可变const,否则他们'再次可变默认.
特别是随着多核处理器和更多多线程软件的出现,它对我来说更有意义.我认为默认情况下应该有更多的限制,并且应该有意识地和明确地(而不是隐含地)解除限制(当你需要时).例如,private默认情况下,类的成员; 继承是private默认的.你让他们public或protected明确.所以应该是- 权利修改的情况一个变量.默认情况下(我认为)您无权修改变量.它需要一点成熟才能理解不变性/限制 - 通过限制,你可以避免软件中的一类错误.这是我的想法,支持声明.
现在回到实际的问题,
为什么C++类型默认不是const,根据const-people,它们应该默认为const?
这是因为
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |