serik Posté(e) le 12 février 2007 Partager Posté(e) le 12 février 2007 Salut Voilà le code : Matrix4.cpp Vector3D Matrix4::operator*(const Vector3D& v){ return Vector3D(m[0][0]*v.getX() + m[0][1]*v.getY() + m[0][2]*v.getZ(), m[1][0]*v.getX() + m[1][1]*v.getY() + m[1][2]*v.getZ(), m[2][0]*v.getX() + m[2][1]*v.getY() + m[2][2]*v.getZ()); } ----------------------- Vector3D.hpp: inline float getX(){return values[V3D_x];} inline float getY(){return values[V3D_y];} inline float getZ(){return values[V3D_z];} Si j'enlève le const, ça compile. Sinon "error: passing 'const Vector3D ' as `this' argument of `float Vector3D::getX()' discards qualifiers". Est-ce parce que j'appelle une fonction sur un paramètre constant? Si oui, comment je peux faire pour définir ma méthode en gardant le caractère constant de Vector3D? Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 13 février 2007 Partager Posté(e) le 13 février 2007 Vector3D.hpp: inline float getX() const {return values[V3D_x];} inline float getY() const {return values[V3D_y];} inline float getZ() const {return values[V3D_z];} N'engage que moi D'ailleurs, je serais toi, je rajouterais des const un peu partout, il en vaut mieux plus que pas assez. Vector3D.hpp: inline const float getX() const {return values[V3D_x];} inline const float getY() const {return values[V3D_y];} inline const float getZ() const {return values[V3D_z];} Lien vers le commentaire Partager sur d’autres sites More sharing options...
tibtib17 Posté(e) le 13 février 2007 Partager Posté(e) le 13 février 2007 Spaz001 a raison. Tu utilises un const Vector3D& v v est donc constant. Tu dois appeler les méthodes constantes de cet objet. donc getX() & co doivent être constantes. D'où le inline float getX() const {return values[V3D_x];} Ensuite, tu peux aussi retourner un float constant... rien ne t'en empêche.... mais ce n'est pas primordial. Lien vers le commentaire Partager sur d’autres sites More sharing options...
serik Posté(e) le 16 février 2007 Auteur Partager Posté(e) le 16 février 2007 ok merci du tuyau je ne savais pas qu'on pouvais trouver autant de const! j'ai fait beaucoup de C et peu de C++... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.