Tengo una pequeña pregunta teórica, sin embargo, es un problema que a veces enfrento al diseñar clases y veo que se hace de manera diferente cuando se lee código ajeno. ¿Cuál de los siguientes sería mejor y por qué:Diseño de clase: matrices frente a variables múltiples
ejemplo 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];
}
ejemplo 2:
class Color
{
public:
// as above
private:
float r;
float g;
float b;
}
¿Hay una regla general, uno debe seguir en casos como este o es sólo hasta un programador y lo que parece tener más sentido?
BTW ¿tiene alguna razón práctica de por qué mantener los campos privados aquí? – Kos
@Kos, dado el ejemplo, podría ver fácilmente el uso de accesos y mutadores para restringir la entrada, aunque cada campo probablemente debería ser 'byte' en lugar de' float'. Además, se pueden usar valores de cadena como '# ABCDEF' y' # ABC'. – zzzzBov