begin process at 2010 02 10 12:37:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Définition d'opérateur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Définition d'opérateur

lundi 7 avril 2003 à 14:58:07 | Définition d'opérateur

clenio

Membre Club
Salut à tous

j'ai une classe pour laquelle j'ai besion de déclarer des opérateurs(ex: = , - , + , >,<,..).
Je ne sais pas du tout comment je dois faire!
C'est pour un projet en c++ sous Visual C++.

merci de bien vouloir m'aider.

ps: c plutot urgent!!! :)
lundi 7 avril 2003 à 16:18:42 | Re : Définition d'opérateur

superpa

Exemple pour opérateur == et l'op = de 2 personnes.
dans la classe tu déclare une méthode:


class Personnes
{
public:
int id;
std::string nom;

// méthodes classiques ...

//opérateurs
Personnes& operator= (Personnes& p)
{
id = p.id;
nom = p.nom;
return *this;
}

int operator==(Personnes& p)
{
return (id == p.id);
}

};
Le principe est le même pour tous les opérateurs

A bientôt,
P-A


-------------------------------
Réponse au message :
-------------------------------

> Salut à tous
>
> j'ai une classe pour laquelle j'ai besion de déclarer des opérateurs(ex: = , - , + , >,<,..).
> Je ne sais pas du tout comment je dois faire!
> C'est pour un projet en c++ sous Visual C++.
>
> merci de bien vouloir m'aider.
>
> ps: c plutot urgent!!! :)
lundi 7 avril 2003 à 17:42:37 | Re : Définition d'opérateur

vieuxLion

bonjour,

OK pour les explications ... mais les opérateurs ont des prototypes "consacrés"
exemple pour une classe A :
bool operator==(const A& a) const;
A& operator=(const A& a);
etc...

un aperçu des questions à se poser lors du développement d'un opérateur se trouve en
PERFORMANCE : I++ OU ++I ?

sinon, comme l'a bien fait superpa, l'idée est de réutiliser l'opérateur des types de base dans le corps de ton nouvel opérateur.

-------------------------------
Réponse au message :
-------------------------------

> Exemple pour opérateur == et l'op = de 2 personnes.
> dans la classe tu déclare une méthode:
>
>
> class Personnes
> {
> public:
> int id;
> std::string nom;
>
> // méthodes classiques ...
>
> //opérateurs
> Personnes& operator= (Personnes& p)
> {
> id = p.id;
> nom = p.nom;
> return *this;
> }
>
> int operator==(Personnes& p)
> {
> return (id == p.id);
> }
>
> };
> Le principe est le même pour tous les opérateurs
>
> A bientôt,
> P-A
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut à tous
> >
> > j'ai une classe pour laquelle j'ai besion de déclarer des opérateurs(ex: = , - , + , >,<,..).
> > Je ne sais pas du tout comment je dois faire!
> > C'est pour un projet en c++ sous Visual C++.
> >
> > merci de bien vouloir m'aider.
> >
> > ps: c plutot urgent!!! :)
>
lundi 7 avril 2003 à 17:50:20 | Re : Définition d'opérateur

vieuxLion

autre remarque,
on peut chercher à optimiser les copies dans le cas de l'opérateur =
a toi de voir le cout d'un test "if" par rapport aux copies

Personnes& operator= (const Personnes& p)
{
if (&p == this) return *this; //cas d'auto affectation
id = p.id;
nom = p.nom;
return *this;
}

Autre remarque :
l'opérateur = est généré par défaut par le compilateur
il n'est peut être pas nécessaire de le redéfinir... tout dépend du contenu de la classe.

-------------------------------
Réponse au message :
-------------------------------

> bonjour,
>
> OK pour les explications ... mais les opérateurs ont des prototypes "consacrés"
> exemple pour une classe A :
> bool operator==(const A& a) const;
> A& operator=(const A& a);
> etc...
>
> un aperçu des questions à se poser lors du développement d'un opérateur se trouve en
> PERFORMANCE : I++ OU ++I ?
>
> sinon, comme l'a bien fait superpa, l'idée est de réutiliser l'opérateur des types de base dans le corps de ton nouvel opérateur.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Exemple pour opérateur == et l'op = de 2 personnes.
> > dans la classe tu déclare une méthode:
> >
> >
> > class Personnes
> > {
> > public:
> > int id;
> > std::string nom;
> >
> > // méthodes classiques ...
> >
> > //opérateurs
> > Personnes& operator= (Personnes& p)
> > {
> > id = p.id;
> > nom = p.nom;
> > return *this;
> > }
> >
> > int operator==(Personnes& p)
> > {
> > return (id == p.id);
> > }
> >
> > };
> > Le principe est le même pour tous les opérateurs
> >
> > A bientôt,
> > P-A
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut à tous
> > >
> > > j'ai une classe pour laquelle j'ai besion de déclarer des opérateurs(ex: = , - , + , >,<,..).
> > > Je ne sais pas du tout comment je dois faire!
> > > C'est pour un projet en c++ sous Visual C++.
> > >
> > > merci de bien vouloir m'aider.
> > >
> > > ps: c plutot urgent!!! :)
> >
>
mardi 8 avril 2003 à 18:07:39 | Re : Définition d'opérateur

clenio

Membre Club
Merci pour ton aide




-------------------------------
Réponse au message :
-------------------------------

> autre remarque,
> on peut chercher à optimiser les copies dans le cas de l'opérateur =
> a toi de voir le cout d'un test "if" par rapport aux copies
>
> Personnes& operator= (const Personnes& p)
> {
> if (&p == this) return *this; //cas d'auto affectation
> id = p.id;
> nom = p.nom;
> return *this;
> }
>
> Autre remarque :
> l'opérateur = est généré par défaut par le compilateur
> il n'est peut être pas nécessaire de le redéfinir... tout dépend du contenu de la classe.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > bonjour,
> >
> > OK pour les explications ... mais les opérateurs ont des prototypes "consacrés"
> > exemple pour une classe A :
> > bool operator==(const A& a) const;
> > A& operator=(const A& a);
> > etc...
> >
> > un aperçu des questions à se poser lors du développement d'un opérateur se trouve en
> > PERFORMANCE : I++ OU ++I ?
> >
> > sinon, comme l'a bien fait superpa, l'idée est de réutiliser l'opérateur des types de base dans le corps de ton nouvel opérateur.
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Exemple pour opérateur == et l'op = de 2 personnes.
> > > dans la classe tu déclare une méthode:
> > >
> > >
> > > class Personnes
> > > {
> > > public:
> > > int id;
> > > std::string nom;
> > >
> > > // méthodes classiques ...
> > >
> > > //opérateurs
> > > Personnes& operator= (Personnes& p)
> > > {
> > > id = p.id;
> > > nom = p.nom;
> > > return *this;
> > > }
> > >
> > > int operator==(Personnes& p)
> > > {
> > > return (id == p.id);
> > > }
> > >
> > > };
> > > Le principe est le même pour tous les opérateurs
> > >
> > > A bientôt,
> > > P-A
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut à tous
> > > >
> > > > j'ai une classe pour laquelle j'ai besion de déclarer des opérateurs(ex: = , - , + , >,<,..).
> > > > Je ne sais pas du tout comment je dois faire!
> > > > C'est pour un projet en c++ sous Visual C++.
> > > >
> > > > merci de bien vouloir m'aider.
> > > >
> > > > ps: c plutot urgent!!! :)
> > >
> >
>


Cette discussion est classée dans : définition, opérateur


Répondre à ce message

Sujets en rapport avec ce message

opérateur [ par mmuller57 ] Dans la source de factorielle, y'a ça :i*=j, je comprend pas a quoi sert le i* ? Qqun peut m'aider?Merci @+ impression, définition des marge dans une boite de Dlg [ par daya ] je cherche à créer une boite de dialgue pour définir les marges des pages d'impression, j'ai cherché autour de la classe CPageSetupDialog, mais je n'a impression, définition des marges dans une boite de DLG [ par daya ] je cherche à créer une boite de dialgue pour définir les marges des pages d'impression, j'ai cherché autour de la classe CPageSetupDialog, mais je n'a Pb avec opérateur '=' sur classe ! [ par nicolas66 ] Bonjour @ tous !g un piti problème avec ma classe de complexes : toute la classe fonctionne ya pas de pb de ce coté là. Par contre, j'ai voulu définir problème opérateur= [ par papytergnier ] Tout d'abord je me présente vite fait : g un projet de c++ à rendre pr lundi et étant assez newbie je suis légérement dans la merde donc j'espère que Déclaration et définition des fonctions [ par AngeloVivaldi ] Slt tout le monde ! Voila, lorsque l'on ecrit "#include " Ou sont définie et déclarer les fontions relatives à ce fichier d'en tête ? #include circulaires [ par abubu38 ] Salut, J'ai un gros probleme de compilation au niveau des .h :fichier f1.h : #include f2.h class A { // définition nécéssitant la classe Opérateur postfixé [ par garslouche ] Bonjour à tous,est-ce quelqu'un asit s'il est possible de définir un opérateur unaire post-fixé ?Par exemple pour faire factorielleMerciOn ne force pa Opérateur de combinaison dans switch... [ par Guidelor ] bonjourcomment faire dans une instruction switch pour voir si la variable testéest egale à 2 valeurs possibles ?genre :switch(int var){case 2 or IA: Définition de l'Intelligence Artificielle ? [ par berlherm ] Définition de l'Intelligence Artificielle ?Avant de se lancer dans des logiciels supposés intelligent encore faudrait-il savoir ce qu'est l'intelligen


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales