¿Puede alguien darme un ejemplo de cómo funcionan los encabezados públicos y privados? He leído algo en la red, pero parece que no puedo encontrar mucha información útil con códigos de muestra. Me aconsejaron que debería usar encabezados privados para separar las partes pública y privada de mi código para crear una biblioteca estática. Después de leerlo, tengo una idea general de cómo funciona, pero realmente apreciaría un buen ejemplo para comenzar. Específicamente, lo que no entiendo del todo es cómo poner las funciones de interfaz en mi encabezado público y las variables/funciones privadas en mi encabezado privado. ¡Gracias!Ejemplo de encabezado privado/público?
EDIT:
Tal vez no estoy redacción mi pregunta correcta, pero lo que quiero decir es, por ejemplo, tengo myMath.h y myMath.cpp, y tiene myMath.h:
class myMath{
public:
void initialise(double _a, double _b);
double add();
double subtract();
private:
double a;
double b;
};
Y myMath.cpp tiene las implementaciones de las funciones. ¿Cómo puedo hacerlo para que myMath.h solo tenga las tres funciones públicas, y las variables privadas se definan en otro archivo (por ejemplo, myMath_i.h), y estos tres archivos estén de tal manera que después de crear una biblioteca estática, solo myMath.h es necesario para los usuarios. Esto también significa que myMath.h no puede #incluir myMath_i.h. Así que algo como:
myMath.h:
class myMath{
public:
void initialise(double _a, double _b);
double add();
double subtract();
}
y myMath_i.h:
class myMath{
private:
double a;
double b;
}
Por supuesto, eso no es posible, porque entonces voy a estar redefiniendo el MyMath clase ...
Esto va más allá de limitarse a proporcionar cabeceras públicas y privadas y muestra el idioma pImpl también - pública/privada es necesaria para ello, pero pImpl no es necesario. –
@AndrewAylett, ¿cómo harías esto sin chulo? –
@LyndenShields, quería decir que puedes tener encabezados públicos y privados por motivos distintos a los pimpl, por lo que demostrar pimpl demuestra un uso específico para encabezados públicos/privados, no la idea genérica. –