理論的な質問が少しありますが、クラスを設計するときに時々直面する問題であり、他のコードを読むときとは異なる方法で行われるように見えます。次のうちどれが良いのか、そしてその理由は次のとおりです。
例1:
class Color
{
public:
Color(float, float, float);
~Color();
friend bool operator==(Color& lhs, Color& rhs);
void multiply(Color);
// ...
float get_r();
float get_g();
float get_b();
private:
float color_values[3];
}
例2:
class Color
{
public:
// as above
private:
float r;
float g;
float b;
}
このような場合に従うべき一般的なルールはありますか、それともプログラマー次第であり、何がより理にかなっているように思われますか?