template ejemplo c++ class private

ejemplo - struct c++



Esconder a los miembros de datos privados?(C++) (5)

¿Hay alguna manera de ocultar los miembros de datos privados de una clase de C ++ de sus usuarios en el archivo cpp? Pienso en los miembros privados como parte de la implementación y parece un poco retrospectivo declararlos en el archivo de encabezado.


¿Vas a hacer publicidad? ;)

Puede crear archivos de encabezado, en los cuales solo declara la API pública y protegida.

Al usuario solo se le presentan estos, que pueden incluir. Ellos vinculan su código con una biblioteca, que usted construyó usando la API completa y las definiciones.

Para las funciones en línea: asegúrese de que se usen en un código que no esté en línea, luego habrá una definición disponible en la biblioteca (sin embargo, no estoy seguro de que esté en línea en la implementación del usuario).

Para el código de plantilla no hay un camino real. Una solución a medias es hacer código, que utiliza el código de plantilla con diferentes tipos de objetos. El usuario se limitará a estos, porque son las únicas definiciones disponibles en su biblioteca.



La forma clásica de hacerlo es con un puntero proxy a una clase interna que implementa la funcionalidad. No hay forma de hacer definiciones parciales de clase en C ++ que yo sepa.