Zakata
Messages postés59Date d'inscriptionlundi 21 août 2006StatutMembreDernière intervention17 juillet 2009
-
1 juil. 2009 à 15:01
Zakata
Messages postés59Date d'inscriptionlundi 21 août 2006StatutMembreDernière intervention17 juillet 2009
-
17 juil. 2009 à 15:37
Bonjours à tous,
Je viens à nouveau faire un appel au secours pour m'aider à me sortir de ce problème que je train depuis pas mal de temps maintenant.
Je suis en train de faire une librairie qui regrouperas les objets c++ les plus usuels (point, vecteurs...) et je suis tombé sur un problème que je ne peux expliquer.
Il y à plusieurs bibliothèques. Chacune des classe dérive de la classe Object. Pour la librairie Geom chacune des classe dérive à son tour de la classe GeomObject.
Le problème vient de la classe vecteur (qui utilise deux instance de la classe point). Lorsque je fait une affectation le compilateur me renvoie :
In member function `dza::dzPoint& dza::dzVecteur<VEC_TYPE>::operator=(const dza::dzVecteur<VEC_TYPE>&) [with VEC_TYPE = float]'
instantiated from here
error: invalid initialization of reference of type 'dza::dzPoint<float>&' from expression of type 'dza::dzVecteur<float>'
instantiated from here pointe sur ces deux ligne :
v1.operator=(v2);
v2=v1;
error: invalid initialization of ref... pointe sur :
template <class VEC_TYPE>
dzVecteur<VEC_TYPE>& dzVecteur<VEC_TYPE>::operator=(const dzVecteur<VEC_TYPE> &vec) {
mpt1=vec.pt1();
mpt2=vec.pt2();
return *this;
}
Ce que je ne comprend pas c'est que this est bel et bien de type vecteur ????
Voila si je n'ais pas été claire fait moi signe
Damien
<hr size="2" width="100%" />*Les fautes d'orthographes jointes à la présente missive, sont la propriété exclusive de l'auteur. Toute copie illégale pourra être passive de poursuites judiciaires, et soumises à des peines et sanctions exemplaires.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 1 juil. 2009 à 17:13
Est-ce-que pour le type de retour de la fonction tu as bien mis partout (déclaration, inplémentation) dzVecteur<VEC_TYPE>& ?
Parce qu'on dirait vraiment qu'il s'attend à avoir un dzPoint& en sortie.
Zakata
Messages postés59Date d'inscriptionlundi 21 août 2006StatutMembreDernière intervention17 juillet 2009 1 juil. 2009 à 17:28
Oui dans la déclaration et l'implémentation sont bien identiques. Le type retour est bien dzVecteur<VEC_TYPE>&.
A croire que GCC est devenu fou !!!
<hr size="2" width="100%" />*Les fautes d'orthographes jointes à la présente missive, sont la propriété exclusive de l'auteur. Toute copie illégale pourra être passive de poursuites judiciaires, et soumises à des peines et san
En espérant que cela t'aide
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Ça compile et ça fonctionne parfaitement. Je commence à être désespéré. J'ai par contre oublié de préciser que la compilation de la bibliothèque ne pose pas de problème. C'est lors de la compilation du soft client que le compilateur me jette. C'est tout à fait normal du fait de l'utilisation de template qui ne peuvent être compilé sans savoir le type.