gpt4 book ai didi

c++ - 在 c++ 世界中获取/设置,失礼?

转载 作者:IT老高 更新时间:2023-10-28 22:33:16 25 4
gpt4 key购买 nike

我注意到 get/set 不是 c++ 方式,据我查看 boost/STL 甚至阅读一些顶级 c++ 专家的著作。

有没有人在他们的 c++ 类设计中使用 get/set,有人可以提出一个经验法则来判断这个范式是否属于 c++ 世界?

它显然在Java中很流行,被c#用Property语法糖模仿。

编辑:

好吧,在下面的答案中提供的链接之一中阅读了有关此内容的更多信息后,我遇到了至少一个参数,用于保持成员字段的访问器与成员字段的名称相同。也就是说,您可以简单地将成员字段公开为公共(public),而是使其成为类的实例,然后重载 () 运算符。通过使用 set/get,您将强制客户端不仅重新编译,而且实际更改其代码。

不确定我是否喜欢这个想法,对我来说似乎有点太细了,但更多细节在这里:

C++ Killed the Getter/Setter

最佳答案

C++ 没有像 C# 这样的属性。可以编写名称中带有“get”和“set”的方法,但它们不会自动创建属性。那么使用 get 和 set 方法是一种好习惯吗?

在 C++ 中使用 get 和 set 方法访问类属性还不错。 STL 和 boost(受 STL 影响)只是选择了一种设计——为你的类有不同的设计是完全可以的。

在我的工作中,我们确实使用 get 和 set。原因主要是它可以编写解析器以通过其他接口(interface)自动包装 C++ 类——ActiveX、.NET、LabVIEW、Python 等。当使用 Visual Studio 的智能(以及其他 IDE 上的类似技术)时,我发现使用 get 和 set 方法可以更轻松地找到我想要的东西。所以有时候使用 get 和 set 方法是有好处的。

最重要的是为你的库选择一个代码风格标准并与之保持一致。

关于c++ - 在 c++ 世界中获取/设置,失礼?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/372700/

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