c++ - 混合 getter/setter 和普通变量

标签 c++ getter-setter

我正在围绕 C 库编写 C++ 包装器,因此需要使用 getter/setter 方法来调用原始 C 函数。

class View {
public:

    GR_COLOR getBackgroundColor();
    void setBackgroundColor(GR_COLOR color);

    GR_COLOR getBorderColor();
    void setBorderColor(GR_COLOR color);
};

像这样将这种风格与普通变量混合在一起会被认为是不好的吗?

class View {
public:

    GR_COLOR getBackgroundColor();
    void setBackgroundColor(GR_COLOR color);

    GR_COLOR getBorderColor();
    void setBorderColor(GR_COLOR color);

    int someOtherVariable;
};

最佳答案

如果您为所有变量定义 getter 和 setter,并将这些变量设为私有(private),那么以后对代码的更改会容易得多。这是 OOP 中 getter/setter 背后的原则之一。人们不会直接访问您的成员,您不必担心他们如何使用它,因为您可以通过 getter 和 setter 控制他们的使用方式。

它也会与您图书馆的其他部分保持一致。

然而,最终取决于您。如果我是你,我肯定会使用 getter 和 setter。

关于c++ - 混合 getter/setter 和普通变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864736/

相关文章:

c++ - QThread 与 std::thread

NativeLibrary for Android 中的 C++11 支持

matlab - 如何在 MATLAB 2013b 中创建自定义 setter 方法?

java - 第一个单词的第二个字母大写时的获取者/设置者

python - setter、getter 和 __set__、__get__ 之间的区别

php - 像在 C# 中一样在 PHP 中获取和设置(私有(private))属性,而不使用 getter setter 魔术方法重载

c++ - 如何使用 MPIR 库计算 GCD

c++ - 程序的参数格式有没有标准?

c++ - 如何将 libcurl 与 dev c++ 静态链接?

javascript - Object DefineProperty 混淆了我对提升/同步和异步 js 的看法