OVH Cloud OVH Cloud

friend et template

1 réponse
Avatar
Geoffrey
Comment declare t'on une classe amie d'une autre classe template ?

template <typename T>
class A
{
protected:
A();
~A();

};


si dans une classe B je veux avoir la classe A amie :


class B
{
friend class A; // la syntaxe est incorrecte car la classe A a deja
ete declare non-template ...
};


comment faire ?

merci.

1 réponse

Avatar
Alex Marandon
On 2006-04-19, Geoffrey wrote:
Comment declare t'on une classe amie d'une autre classe template ?

template <typename T>
class A
{
protected:
A();
~A();
};

si dans une classe B je veux avoir la classe A amie :

class B
{
friend class A; // la syntaxe est incorrecte car la classe A a deja
ete declare non-template ...
};

comment faire ?


Dire de quelle instance du template A il s'agit ?

Donc 'friend class A<int>', par exemple, si B connait le type à passer en
paramètre à A.

Ou bien 'friend class A<T>', si B devient lui-même un template prenant
un paramètre T.