Classes amies et héritage simple
Bonjour,
Je rencontre un petit souci : je n'arrive pas à donner une relation d'amitié à une classe héritant d'une autre classe. Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
template<typename T> class A
{
public :
A()
{
T();
}
};
template<typename T> class B : public A<T>
{
public :
B(){}
};
class C
{
// Problème ici : comment donner l'amitié à A<C> à partir d'ici ?
friend class B<C>::A<C>; // Mauvaise syntaxe
private :
C(){}
~C(){}
public :
static B<C> * Create()
{
return new B<C>;
}
}; |
En fait, je pourrai très bien me débrouiller sans mais j'aimerai rendre le constructeur / destructeur de C privés pour forcer le développer à renvoyer un pointeur sur C. Quelqu'un pourrait-il me dire si c'est possible et si oui comment faire ? Merci d'avance :)
Nico.