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

benjiiim94
|
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
|
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
|
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ée 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
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|