gpt4 book ai didi

c++ - "get() const"与 "getAsConst() const"

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:04:54 25 4
gpt4 key购买 nike

有人告诉我他们团队中的 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/

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