const T&
和T const&
是相同的,都表示对const T的引用。在这两种情况下,引用也是常量(与指针不同,引用不能被重新分配)。根据我的有限经验,大多数C++程序员使用const T&
,但我遇到过一些使用T const&
的人。我使用const T&
只是因为我是这样学的,所以T const&
对我来说有点奇怪。你使用你使用的变体的原因是什么?你们中的任何人在一个编码标准强制要求使用其中之一吗?
编辑根据答案,选择两者之间的原因之一似乎是您想要像编译器一样(从右到左)阅读还是像英语一样(从左到右)阅读。如果一个人像编译器一样阅读它,那么“T const&”就会被解释为“&(引用)const(指向常量的)T(类型为T)”。如果一个人从左到右像英语一样阅读,那么“const T&”就被解释为“一个类型为T的常量对象,以引用的形式”。我更喜欢像英语散文一样阅读它,但我当然可以理解按照编译器的方式来解释它的意义。
没有人回答组织或编码标准问题,但我强烈怀疑大多数组织不会强制要求其中之一,尽管他们可能会努力保持一致性。