这是一个非常简单的问题,但在某些情况下,我似乎找不到选择一个而不是另一个的一般规则。
假设我有一个简单的Point
类,如下所示:
class Point
{
public:
Point();
Point(double, double, double);
Point(const Point& other);
Point& operator=(const Point& other);
bool operator==(Point& lhs, Point& rhs);
void translate(double, double, double);
double getX() const;
double getY() const;
double getZ() const;
void setX(const double);
void setY(const double);
void setZ(const double);
private:
double x_, y_, z_;
}
好吧,但为什么不把它变成一个带有公共 x、y、z 的结构并节省一半的代码呢?
另一个例子可以说我有一个Header
这样的结构:
struct Header
{
short int id;
short int version;
size_t indexOffset;
size_t indexSize;
}
在什么情况下我想让它成为一个类?上述内容与我在这样的质量代码中也看到的内容之间是否有任何区别:
class Header
{
public:
short int id;
short int version;
size_t indexOffset;
size_t indexSize;
}
所以我想这个的一个子问题是我如何决定何时将成员变量设为私有。我知道 OO 纯粹主义者可能会说总是,但我不确定它的好处。
非常感谢。