resueltos resolucion programacion poo orientada operador objetos libro ejercicios constructores codigo clases ambito c++ private

resolucion - ¿Por qué definir miembros privados debajo de miembros públicos en C++?



operador de resolucion de ambito c++ (6)

Convenido. Los miembros privados deben ser declarados en la parte inferior. La única buena razón para declarar primero los miembros privados que encontré, es cuando una función necesita obtener o devolver un tipo de datos personalizado, como: vector. El compilador le preguntará qué tipo de datos es ese.

Pero incluso, en ese caso prefiero hacer:

{privado: /// advicing ofc hay más privado a continuación! anterior declarar sólo del tipo

público:

privado:

};

En C ++, a veces, en la definición de clase, los miembros públicos se declaran al principio y luego los privados. Pero las variables o los miembros de datos normalmente son privados y son utilizados por los métodos públicos. Entonces, en este caso las variables se utilizan pero ni siquiera se declaran todavía. Así el código se vuelve difícil de entender. Pero encontré programadores, sitios o libros de renombre para declarar a los miembros privados más tarde. ¿Alguien sabe cuál es la razón?


Hago las cosas de esa manera ya que a los usuarios de mi clase no les importan los miembros privados, están interesados ​​en la API pública (es decir, cómo usar mi clase).

Además, en los archivos de encabezado, en general, simplemente declaro funciones miembro, en lugar de definirlas, por lo que no estoy accediendo a ningún miembro privado de todos modos.


Leemos el texto de arriba a abajo, por lo que la información más relevante debe estar en la parte superior. En una definición de clase, esa es la interfaz pública.


Los miembros privados y la implementación deben estar ocultos del archivo de encabezado. Poner las definiciones de miembros privados en la parte inferior es una forma rápida de hacerlo. Quizás es mejor usar el lenguaje Pimpl y ocultar la parte privada de su clase en una estructura interna.


Normalmente los miembros privados no importan. Si estoy viendo una clase para determinar cómo usarla en otra parte del código, no me importa su contenido interno, así que ponga a los miembros privados en la parte inferior, ya que no necesito saber sobre ellos. Si estoy modificando una clase, me tomo el tiempo para encontrar a los miembros privados y saber que estarán al final en lugar de tener que echar un vistazo a toda la clase.


Somos como opuestos: mi pregunta.

Mi razonamiento es que cuando se está familiarizando con una clase, es más beneficioso introducirse primero en la interfaz pública y luego profundizar en los miembros privados cuando sea necesario. Si comienza observando a los miembros privados, no tiene ningún contexto sobre cómo se utilizan.