C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

template et classe cachée... ça coince

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
meow
Guest





PostPosted: Thu Jul 07, 2005 2:38 pm    Post subject: template et classe cachée... ça coince Reply with quote



Je crois que ce genres de questions ont déjà été adressées, mais
je n'ai pas bien compris les quelques réponses connexes que j'ai pu
lire... Et puis une seconde couche ne fait jamais de mal... Alors
voilà :

je définis une classe Pair dans une classe A, le tout templaté par
T, puis je tente de redéfinir l'opérateurs << sur A A<T>::Pair :

--------------------------------------
template <class T>
class A {
public:
struct Pair{
public:
T fst;
T scnd;
};
T val;
Pair val2;
};

template <class T>
std::ostream& operator << (std::ostream& o,A {o<
template std::ostream& A<T>::operator << (std::ostream& o,typename A {o<<"["<
int main(){
A a.val = 1;
a.val2.fst=2;
a.val2.scnd=3;

std::cout< std::cout<
std::cout< return 0;
}
-------------------------------
et ça crash sur std::cout< la définition de << sur A
faits rigolos :
1. simplement ajouter une définition de << sur A main "résoud" le
problème
2. redéfinir << dans la classe Pair comme :
friend std::ostream& A A "résoud" aussi le problème !
3. définir pair comme templatisée par D (très laid) résoud aussi le
problème, c.à.d :
---------
template class A {
public:
template <class D>
struct Pair{
public:
T fst;
T scnd;
};
T val;
Pair<T> val2;
};

template <class T>
std::ostream& operator << (std::ostream& o,typename A {o<<"["< -----------
Le problème c'est que :
a.) je ne comprends rien de ce que j'ai fait Smile
b.) ça ne résoud pas mon problème initial puisque je suis dans un
cas
concret où j'utilises une classe sur le modèle de A (avec définition
de
classe cachée utilisant le template de A) et que j'aimerai redéfinir
<<
sur cette dernière...

Si vous aviez au choix quelques explications sur ces trois cas de
figure / un pointeur vers une bonne doc / une solution à mon problème
de base : redéfinition de << sur A
Cordialement
--Ben

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.