gpt4 book ai didi

c++ - 如果 C++ 中不存在 getter 和 setter,有没有办法自动生成它们?

转载 作者:IT老高 更新时间:2023-10-28 21:54:17 32 4
gpt4 key购买 nike

我有使用 Objective-C 的经验,在 Objective-C 中,您可以让编译器为您生成 getter 和 setter(如果它们尚不存在)(@synthesize)。

有没有办法在 C++ 中做到这一点,还是我需要自己实现所有的 getter 和 setter?

最佳答案

The C++ Core Guidelines advise against using trivial getters and setters因为它们是不必要的,a symptom of bad object-oriented design .因此,C++ 没有用于自动生成 getter 和 setter 的内置功能(尽管 metaclasses ,如果它们被包含在语言中,将使这成为可能)。这与完善的软件工程原理有关tell, don’t ask .

特别是,通过 setter 改变状态通常是代码异味和糟糕的架构设计的标志。此规则有异常(exception)情况,purely out of practicality .这很好,但异常(exception)很少,它们不应该保证工具可以自动生成 getter 和 setter。

事实上,您可以将此作为试金石:每当您发现自己希望使用工具来自动生成此类样板时,请退后一步,重新考虑您的代码设计。


也就是说,有许多工具可以提供这些功能,而且从纯粹的实用角度来看,它们可能会被证明是有用的,尽管我没有亲自测试过它们:

关于c++ - 如果 C++ 中不存在 getter 和 setter,有没有办法自动生成它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6912696/

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