作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人告诉我他们团队中的 C++ 风格差异。我对这个问题有自己的看法,但我会对来自每个人的优点和缺点感兴趣。
所以,如果你有一个类属性,你想通过两个 getter 公开,一个是读/写,另一个是只读的(即没有设置方法)。至少有两种方法:
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++ 应该能够在几乎所有情况下完美应对方法 A。我一直在使用它,从来没有遇到过问题。
在我看来,方法 B 是违反 OnceAndOnlyOnce 的情况。而且,现在您需要弄清楚您是否正在处理 const 引用以编写首次编译的代码。
我想这是一种风格上的东西——从技术上讲,它们都可以工作,但 MethodA 使编译器工作得更努力一些。对我来说,这是一件好事。
关于c++ - "get() const"与 "getAsConst() const",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/97081/
有人告诉我他们团队中的 C++ 风格差异。我对这个问题有自己的看法,但我会对来自每个人的优点和缺点感兴趣。 所以,如果你有一个类属性,你想通过两个 getter 公开,一个是读/写,另一个是只读的(即
我是一名优秀的程序员,十分优秀!