Convenios para métodos de acceso (captadores y establecedores) en C ++
Se han hecho varias preguntas sobre métodos de acceso en C ++ en SO, pero ninguna pudo satisfacer mi curiosidad sobre el tema.
Intento evitar los accesores siempre que sea posible, porque, como Stroustrup y otros programadores famosos, considero que una clase con muchos de ellos es un signo de mala OO. En C ++, en la mayoría de los casos puedo agregar más responsabilidad a una clase o usar la palabra clave friend para evitarlos. Sin embargo, en algunos casos, realmente necesita acceso a miembros específicos de la clase.
Hay varias posibilidades:
1. No use los accesos en absoluto
Simplemente podemos hacer públicas las respectivas variables miembro. Esto es una opción prohibida en Java, pero parece estar bien con la comunidad C ++. Sin embargo, estoy un poco preocupado por los casos en los que se debe devolver una copia explícita o una referencia de solo lectura (const) a un objeto, ¿es exagerado?
2. Utilice los métodos get / set de estilo Java
No estoy seguro si es de Java, pero quiero decir esto:
int getAmount(); // Returns the amount
void setAmount(int amount); // Sets the amount
3. Use métodos objetivos de obtener / establecer estilo C
Esto es un poco extraño, pero aparentemente cada vez más común:
int amount(); // Returns the amount
void amount(int amount); // Sets the amount
Para que eso funcione, tendrá que encontrar un nombre diferente para su variable miembro. Algunas personas agregan un guión bajo, otras anteponen "m_". A mí tampoco me gusta.
¿Qué estilo usas y por qué?