c++ - 空类方法实现

标签 c++ class methods

我用一些数据成员、setter 和 getter 方法定义了一个类 Example:

class Example
{
     private:
        int  variable_A;

     public:
        void set_A_value(int input)
        {
            variable_A = input;
        }
        int get_A_value()
        {
            return variable_A;
        }
}

稍后,我创建类实例并在其他源代码文件中调用 setter 和 getter 方法。

如果我决定之后从类 Example 中删除 variable_A,将 getter 和 setter 方法的实现留空是否是一个好习惯,这样我们就不必从其他源文件中删除代码?

最佳答案

这很难说,因为您没有提供任何上下文,但我猜您正在做一些不适合面向对象设计的事情。

Getter 和 setter 应该访问类的概念属性,而不是它的物理成员。如果您为每个私有(private)变量创建一个 getter 和一个 setter,那么它就破坏了封装的整个目的。

variable_A 存储每个对象的概念属性——在这种情况下,删除它实际上会改变类的语义(在这种情况下,无论如何都必须重写依赖于它的代码) ---或者它没有,但构成了一个更大的功能的一部分,可以用不涉及 variable_A 的方式重写---在这种情况下不应该有 getter 和首先是二传手。

关于c++ - 空类方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22287881/

相关文章:

c++ - CMake 在链接之前指定源

c++ - Windows 7下无法加载QtBluetooth 5.12.0

java - 将数组的数组存储在它自己的类中?

c++ - 我是否正确地实现了这个模板类?

java - 如果您不为接口(interface)指定访问修饰符,那么该接口(interface)将具有默认访问权限,这是真的吗

java - 尝试使用 void 方法中的实例变量 (java)

c++ - 使用 Boost Interprocess 1.60 发布版本时出现奇怪的链接器错误

c++ - 如何强制SFINAE选择第二个结构定义?

python - 在 python 中定义方法类型的最佳实践

c++ - 在匿名类中返回* this时, 'auto'返回类型是什么类型?