Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/06/2010, 20:45
margarito04
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: FUNCIÒN FRIEND DE UNA CLASE, problemas!

Lo que plantea CalgaryCorpus es cierto, debes entender que una clase amiga es una clase que no pertentenece a la clase, pero que sin embargo es capaz de acceder a los miembro privados de ella. Esto rompe en algun sentido los conceptos de la programacion orientada a objecto. Pero aun asi es valido su uso. La forma de hacerlo en tu caso sería de la siguiente forma:

Código Codigo:
Ver original
  1. #ifndef _TBT_H_
  2. #define _TBT_H_
  3.  
  4. template <class type> class UnaClase
  5. {
  6. private:
  7.     int x;
  8.  
  9. public:
  10.     UnaClase(){ //constructor de UnaClase
  11.     };
  12.  
  13.     UnaClase(int numero){ //2do constructor de UnaCLase
  14.         this->x = numero;
  15.     }
  16.    
  17.     template <class type>
  18.     friend void output(UnaClase<type>);
  19. };
  20.  
  21. #endif
  22.  
  23. using namespace std;
  24.  
  25. template <class type>
  26. void output(UnaClase<type> obj)
  27. {
  28.     int num = obj.x; //linea 10
  29. }
  30.  
  31. int main()
  32. {
  33.     UnaClase<int> objeto;
  34.     output(objeto);
  35.  
  36. return 0;
  37. }