首页 > 解决方案 > 为什么要使用 getter 来构造私有成员而不是公开它们?

问题描述

假设我有一个定义 Circle 对象的简单类:

class Circle {
public:
    Circle(const double x): radius(x) { ; }
    const double getRadius() const { return radius; }

private:
    const double radius;

};

这似乎是一种常见的约定,并遵循数据隐藏的 OO 原则。我的问题是为什么要这样做? 做个radius公众号不是更简单吗?对于可变成员,这显然是个坏主意,因为任何人都可以修改圆的半径,但由于它是常量,我认为没有必要将其设为私有。做这样的事情是否可以接受?:

class Circle {
public:
    Circle(const double x): radius(x) { ; }
    const double radius;
};

标签: c++constantsgetterpublicdata-hiding

解决方案


推荐阅读