gpt4 book ai didi

c++ - 仅对一个成员使用 C++ 访问修饰符

转载 作者:行者123 更新时间:2023-11-27 22:57:26 25 4
gpt4 key购买 nike

我正在努力使在 C++ 中生成 setter 和 getter 更加方便。现在,我想到了这个:

#define getterAndSetter(t, vn, fn) \
t vn; \
t get##fn() { \
return vn; \
} \
void set##fn(t val) { \
vn = val; \
}

所以,问题是现在我在同一个访问权限(公共(public)/私有(private))中拥有变量和 getter。我本可以在那里写 public: 和 private: ,但这样我就失去了前后代码的上下文。问题是我能否像在 Java 中那样只获得一个成员的访问修饰符?

最佳答案

只是不要使用宏。然后你可以把所有东西放在你想要的任何访问权限中。即使是那些毫无意义的:

class MyClass {
public:
T var;
private:
T getVar() { return var; }
protected:
void setVar(const T& v) { var = v; }
};

进一步的好处是,每个阅读我刚刚写的东西的人都会很快理解它的作用。使用宏,您会混淆和不合理地复杂化应该是简单的代码。

关于c++ - 仅对一个成员使用 C++ 访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369329/

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