begin process at 2012 02 10 16:11:59
  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 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 4,040 sec (3)

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