gpt4 book ai didi

c++ - 如何避免必须编写样板访问器代码

转载 作者:太空狗 更新时间:2023-10-29 22:59:17 24 4
gpt4 key购买 nike

我发现,在编写 C++ 代码时,我花了很多时间编写访问器样板代码,例如:

class A
{
int x;

public:
auto x();
void set_x(decltype(x));
};

实现访问器的整个想法围绕着能够拦截对它们的读写访问。我偶然发现了 this图书馆(我不是作者)。这真的让我想知道,如果为了避免编写样板代码,是否可以/应该只写类似这样的东西:

class A
{
public:
property<int> x;

A() {
x.setter([this](int){ /* setter code */ });
}
};

我的问题是:有哪些技术可以避免为 getter 和 setter 编写大量样板代码?

最佳答案

有一些讨论herethere关于 getter 和 setter 通常是否是邪恶的。

因此,我避免样板代码的策略是:尽量避免使用 getter 和 setter。当需要一些纯数据类时,我将(少数)字段声明为公开的。但在这些情况下,我尽量避免给它们任何其他逻辑,我尽量让这些类尽可能少。

此外,请阅读“告诉不要问”,例如来自 Martin Fowler .

关于c++ - 如何避免必须编写样板访问器代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37410620/

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