gpt4 book ai didi

c++ - 为什么有些人更喜欢 "T const&"而不是 "const T&"?

转载 作者:IT老高 更新时间:2023-10-28 13:24:16 30 4
gpt4 key购买 nike

所以,我意识到 const T&T const& 是相同的,并且都表示对 const T 的引用。在这两种情况下,引用也是常量(引用与指针不同,不能重新分配)。根据我有限的经验,我观察到大多数 C++ 程序员使用 const T&,但我遇到过一些使用 T const& 的人。我使用 const T& 只是因为我是这样学习的,所以 T const& 对我来说看起来有点好笑。您使用您使用的变体的原因是什么?你们中是否有人在编码标准要求使用一种变体而不是另一种变体的组织工作?

编辑
根据答案,似乎在两者之间进行选择的一个原因是您是想像编译器(从右到左)还是像英语(从左到右)一样阅读它。如果像编译器一样读取它,那么“T const&”将读取为“&(引用)const(到常量)T(类型 T)”。如果人们像英语一样从左到右读它,那么“const T&”被读作“引用形式的 T 类型的常量对象”。我更喜欢像英语散文一样阅读它,但我当然可以看到编译器那样解释它的意义。

没有人回答过组织或编码标准的问题,但我强烈怀疑大多数组织不会强制要求其中之一,尽管他们可能会努力保持一致性。

最佳答案

我认为有些人只是喜欢从右到左阅读声明。 const 适用于左侧标记,除非那里没有任何内容并且它适用于右侧标记。因此 const T& 涉及“except”子句,可能被认为更复杂(实际上两者都应该很容易理解)。

比较:

const T* p;  (pointer to T that is const)
T const* p; (pointer to const T) //<- arguable more natural to read
T* const p; (const pointer to T)

关于c++ - 为什么有些人更喜欢 "T const&"而不是 "const T&"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2640446/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com