C/Visual C - oculatacion de miembros clase

 
Vista:

oculatacion de miembros clase

Publicado por gremboxic (2 intervenciones) el 03/03/2007 12:55:38
Buenas,
tengo una dudilla respecto a la ocultación de datos dentro de las clases..

pongamos que quiero hacer una clase Pila implementada con una tabla; tengo el archivo .h tal como:

class Pila{
private:
int t[];
...
public:
void anadir();
...
}

y por otro lado el .cpp;
lo compilo y consigo el Pila.h y el Pila.o, preparados para ser enlazados,

pero mi duda es:
¿hay alguna forma de "ocultar" los campos usados para implementar la pila...? es decir, alguna forma de que el usuario que utilice el Pila.h no vea el int t[]... y deba decirle que puede usar el metodo anadir(), tiene un constructor Pila(),...

seria algo como los archivos .class de java, en los cuales el usuario no sabe nada de como esta echo... y posteriormente podria canviar la implementacion a punteros, y el usuario no veria nada...

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:oculatacion de miembros clase

Publicado por El Mogur (202 intervenciones) el 05/03/2007 00:04:26
Existe un patrón, llamado "pimpl" que hace eso (pimpl = puntero a la implementación)

En el .H:

struct Pimpl;

class Pila {
public:
// Cosas públicas

private:
Pimpl *_pimpl;
}

Y luego en el .cpp dices qué tiene la estructura, y la utilizas:

struct Pimpl {
int t[100];
int cima;
}

Y luego se hacen los correspondientes new's y delete's.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar