Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: darkvidhack en 21 Octubre 2011, 18:42 pm



Título: Plantilla de clase c++
Publicado por: darkvidhack en 21 Octubre 2011, 18:42 pm
Hola, tengo una duda, les comento:

cuando creo una plantilla de clase, tal que así:

Código
  1. template <class T>
  2. class X {
  3. private:
  4. ...
  5. public:
  6. ....
  7. }
  8.  

Y Luego en otra clase distinta, quiero que un atributo de esta última sea de tipo X<T>, como le hago, así?:

Código
  1.  
  2. class Y {
  3.  
  4. private:
  5. X<T> atributo;
  6.  
  7. public:
  8.  
  9. }
  10.  
  11.  

poniendo eso me dice que T no está definida en el ámbito de la clase Y, pero si no pongo <T>, también me da fallo, alguien podría ayudarme?, ni cabe decir que hago el include de la clase jeje.

Gracias de antemano ;)

EI: juntando mensajes.

Hola de nuevo! creo que encontré la respuesta yo mismo, al declarar el atributo 'atributo' en la clase Y, ya tengo que definir de qué tipo será la clase X, tendría que poner:

X<int> atributo;    int, char, float... etc etc


¿Estais de acuerdo?

Muchas Gracias ;)


Título: Re: Plantilla de clase c++
Publicado por: do-while en 22 Octubre 2011, 15:25 pm
¡Buenas!

Si, definir el tipo de dato en concreto que va manejar X dentro de Y es una alternativa. La otra supongo que seria definir Y como un template que dependa de al menos un parametro, y decir que X sera del tipo de uno de los parametros que definen Y.

¡Saludos!