【发布时间】:2026-01-04 10:35:02
【问题描述】:
有人告诉我他们团队中的 C++ 风格差异。我对这个问题有自己的看法,但我会对来自每个人的pros和cons感兴趣。
所以,如果你有一个类属性,你想通过两个 getter 公开,一个是读/写,另一个是只读的(即没有 set 方法)。至少有两种方法:
class T ;
class MethodA
{
public :
const T & get() const ;
T & get() ;
// etc.
} ;
class MethodB
{
public :
const T & getAsConst() const ;
T & get() ;
// etc.
} ;
每种方法的优缺点是什么?
我对 C++ 技术/语义方面的原因更感兴趣,但也欢迎风格方面的原因。
请注意,MethodB 有一个主要的技术缺陷(提示:在通用代码中)。
【问题讨论】:
-
我认为这个例子有错字?
-
这是 C++ 伪代码。重要的是 MethodA 上的只读 getter 称为“get”,MethodB 上的读/写 getter 称为“getAsConst”。没有定义 T 的事实对于本次讨论是次要的。不过,你是对的。我会纠正那个,以及缺少的“公众”...... :-)
-
啊,我以为我看到 MethodA 和 MethodB 与第一个方法的命名相同的错字。鉴于问题的措辞,我希望一个 MethodB 没有“T & get() ;”作为一种方法。
标签: c++ coding-style constants