Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Opérateur de comparaison dans une classe générique [ Archives / Au secours ] (benjiiim94)

samedi 13 mai 2006 à 15:01:06 | Opérateur de comparaison dans une classe générique

benjiiim94

Membre Club
Bonjour, Je crois que pas mal d'infos sont dans le titre, il ne manque plus que la source de la classe : #pragma once #include "StdAfx.h" using namespace std; template class Point { T x; T y; public: Point(void); ~Point(void); void affich(); void set(T, T); friend ostream& operator<<(ostream &os, const Point &) { os << "affichage" << std::endl; return os; } bool operator==(const Point &c); }; template Point::Point(void) { std::cout << "on entre dans le constructeur" << std::endl; } template Point::~Point(void) { std::cout << "on entre dans le destructeur" << std::endl; } template void Point::affich() { std::cout << "On affiche " << this->x << ", " << this->y << std::endl; } template void Point::set(T x, T y) { this->x = x; this->y = y; } //surcharge de l'opérateur d'égalité. test ok template bool Point::operator ==(const Point &c) { //HACK : je ne suis pas sûr, mais je pense qu'il faut comparer les valeurs if(this->x == c.x) { return true; } else { return false; } } La facon, dont j'utilise cette classe : Point p; Point p2; p.set(3.7,5.6); p2.set(4.3,6.9); std::cout << p < p2; //ERREUR ici et l'erreur renvoyé par visual studio : Error 1 error C2679: binary '<' : no operator found which takes a right-hand operand of type 'Point' (or there is no acceptable conversion) Merci beaucoup de votre aide ++ Ben

samedi 13 mai 2006 à 15:02:27 | Re : Opérateur de comparaison dans une classe générique

benjiiim94

Membre Club
Au fait, oubliez le HACK dans la méthode de comparaison, il est dû à un copier-coller trop large ! :p

samedi 13 mai 2006 à 16:09:42 | Re : Opérateur de comparaison dans une classe générique

ymca2003

Il manque un <

std::cout << p << p2;

samedi 13 mai 2006 à 16:54:44 | Re : Opérateur de comparaison dans une classe générique

benjiiim94

Membre Club
En plus des multiples erreurs de copier/coller qui font que mon premier post est incohérent... (vraiment désolé...) L'erreur ne vient pas du fait que j'utilise une classe template mais que l'on a pas droit de faire quelquechose du style : std::cout << 3<5; pour afficher le résultat d'un test. (je croyais que ca renvoyait simplement un booléen, mais il doit y avoir quelquechose d'autre là dessous...) si je fais if (p < p2) { std::cout << "inferieur"; }else { std::cout << "pas inferieur"; } il n'y a pas de soucis. Merci de ton aide, tu m'as fais faire (involontairement ? ;) ) les bons tests ! :p

dimanche 14 mai 2006 à 01:02:59 | Re : Opérateur de comparaison dans une classe générique

Hylvenir

Réponse acceptée !
Salut,

tu as le droit de faire

std::cout << (3 < 5 );

à cause des priorités des opérateurs, sinon c'est évalué
comme ça : (std::cout << 3 ) <5;


Ma participation à la saturation du net: http://hylvenir.free.fr



Cette discussion est classé dans : set, classe, void, cout, std


Répondre à ce message

Sujets en rapport avec ce message

probleme sur une classe [ par NerOcrO ] Voici mon code :#include #include class Chanson //classe Chanson{ public: int Duree; char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50 une fiche de renseignement [ par cabarrus ] je cherche à faire un programme qui demande des renseignements pour pouvoir ensuite les affiché comme une fiche d'identité!!!voici monprogramme mais m classe et agregation... [ par Clonk ] bonjour,j'utilise plusieurs classes ayant des agregations (sous Borland).Disons en gros que si on a :class personne{private:int age;public:void affich utiliser une fonction d'une lib C dans une classe c++ [ par snook ] Bonjour,j'aimerais savoir comment doit on proceder pourappeler une fonction d'une librairie ecrite en C dansmon programme C++?exemple: ma lib possede morpion [ par charon123 ] Bon, 1), je suis débutant et je viens de commencer il y a une semaine. 2)j'utilise dev-cpp es ce que c'est bien? 3)alors voila, j'essaye de faire un m message d'erreur a l'execution [ par frdestroyers27 ] Bonjours a tous!j'ai taper le programme suivant en Win32Console app.#include #include #include char nom[50][MAX_PATH];void lister(LPCTSTR file);void a pb classe new et delete [ par mat74 ] salut a ts j'ai encore un pb avec les classescomment je pourrai faire sa :class teste {public: int x; void augmenter() {x++;} void detruire(test calcul d'un modulo [ par cabarrus ] Qui peu m'aidé s.v.p pour ce problème...Ecrire un prog qui demande 2 nbres à l'utilisateur et qui affiche le reste de la division du 1er par le second incompatibilité 'std' et 'friend' [ par cabieces ] CABECOUJ'ai définit une fonction amie, celle ci doit donc pouvoir accéder aux champs privée de la classe. Ceci marche trés bien sauf quand la classe u Pointeur vers une fonction dans une classe ... [ par MoDDiB ] Supposons que j'ai la fonctionvoid Fonction(int test,int t);appartenant a la classe Cclass.Quelle est la syntaxe pour creer un pointeur vers cette fon


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.