Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





template friend

Iniciado por Pogacha, 23 de Agosto de 2006, 09:35:00 PM

« anterior - próximo »

Pogacha

Como hago esto?
template <int n> class x { };
class y {  friend class x; };

Sin tener que poner friend class x<1>, friend class x<2> and so ...

O sea con el VC6 no puedo ...
Con el VC7 o Express cambia la mano?
O es algo ya del lenguaje?
O donde puedo averiguar sobre esto?

Saludos y gracias

LC0

Lo que puedes hacer es poner un valor por defecto a n:

template <int n=42> class x { };
class y {  friend class x; };

Pogacha

Pero seran friend todos o solo el por defecto?
bueno, eso creo que es cuestion de probar ...
Saludos

ethernet

y:

template< class T> class y { friend class T;};

y luego:


y<x<123> > var;

Pogacha

Eso es interesante, pero no me sirve.

La idea es:template <int n> class x {  };
class y {  friend class x; };
Donde Y es un polimorfico que no debe tener acceso a X y X debe si debe tener acceso a Y
Para que se entienda mas, Y es un objeto y X es un manager.

Aun no he podido probar pero si le das un valor por defecto he de suponer que te hará amigo a X<valor por defecto> tan solo ... y me pierdo de tener un monton de amigos :(

Hace unos poco segundos se me ocurrio que puede ser solución agregar un base Z tal que:

class z { <aqui todos los accesos a y a traves de funciones> };
template <int n> class x : z {  };
class y {  friend class z; };


Este metodo me permitiria hacer grupos de amigos con solo una declaracion de amistad pero agrega codigo extra y me gustaria encontrar algo mejor. Si lo encuentro despues lo comento, aun que parece que no lo hay.

hotcamus

Hace tiempo ya de este hilo pero por si sigues buscando la respuesta:


template <int n> class x {  };
class y { template <class> friend class x; };

Pogacha

No habia ledio esta respuesta ... bueno lo tendré que probar.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.