とても簡単な質問ですが、場合によってはどちらかを選択するという一般的なルールが見つからないようです。
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_;
}
すべてうまくいきましたが、public 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の純粋主義者はおそらく常に言うだろうと私は知っていますが、その利点についてはよくわかりません。
どうもありがとう。