所以,我意识到 const T&
和 T const&
是相同的,并且都表示对 const T 的引用。在这两种情况下,引用也是常量(引用不能重新分配,与指针不同) .根据我有限的经验,我观察到大多数 C++ 程序员使用 const T&
,但我遇到过一些使用 T const&
的人。我使用 const T&
只是因为我是这样学习的,所以 T const&
对我来说看起来有点好笑。您使用您使用的变体的原因是什么?你们中是否有人在编码标准要求使用一种变体而不是另一种变体的组织工作?
编辑
根据答案,似乎在两者之间进行选择的一个原因是您是想像编译器(从右到左)还是像英语(从左到右)一样阅读它。如果像编译器一样读取它,那么“T const&”将读取为“&(引用)const(到常量)T(类型 T)”。如果人们像英语一样从左到右读它,那么“const T&”被读作“引用形式的 T 类型的常量对象”。我更喜欢像阅读英语散文一样阅读它,但我当然可以看到以编译器的方式解释它的意义。
没有人回答过组织或编码标准的问题,但我强烈怀疑大多数组织不会强制要求其中之一,尽管他们可能会努力保持一致性。
原文由 Michael Aaron Safyan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为有些人只是喜欢从右到左阅读声明。
const
适用于左侧令牌,除非那里没有任何东西并且它适用于右侧令牌。因此const T&
涉及“except”子句,可能被认为更复杂(实际上两者都应该很容易理解)。相比: