begin process at 2012 05 30 04:38:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Surcharge des Opérateurs ?


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

Surcharge des Opérateurs ?

lundi 17 février 2003 à 16:00:14 | Surcharge des Opérateurs ?

MichelAliasMiB

Bonjour,

Dans le cadre d'un cours de C++, je dois faire un
exercice pour comprendre la surcharge des opérateurs.

J'ai un bouquin qui traite du sujet, mais cela ne me
suffit pas, si quelqu'un pouvait me guider un peu sur
la compréhension du but recherché lors de la surcharge
des opérateurs, j'apprécierais beaucoup.

Merci d'avance de vos lumières :-)

MiB
lundi 17 février 2003 à 16:08:54 | Re : Surcharge des Opérateurs ?

Beuss

Le but ca peut etre par exemple, si tu as une classe cube (c'est toujours le meme exemple) de définir comment additionner deux objets cubes en surchargeant l'opérateur +
C'est un exemple, je sais pas si ca répond bien à ta question



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

> Bonjour,
>
> Dans le cadre d'un cours de C++, je dois faire un
> exercice pour comprendre la surcharge des opérateurs.
>
> J'ai un bouquin qui traite du sujet, mais cela ne me
> suffit pas, si quelqu'un pouvait me guider un peu sur
> la compréhension du but recherché lors de la surcharge
> des opérateurs, j'apprécierais beaucoup.
>
> Merci d'avance de vos lumières :-)
>
> MiB
lundi 17 février 2003 à 17:57:05 | Re : Surcharge des Opérateurs ?

MichelAliasMiB

Bonjour,

Ce n'est pas très clair pour moi !
Additionner deux objets ???
De façon schématique ...

Est-ce que :

Si :
Obj1 = tab[0..4] = [ 0 , 1 , 0 , 1 , 0 ]
Obj2 = tab[0..4] = [ 0 , 0 , 1 , 1 , 0 ]

Alors :
Obj3 = Obj1 + Obj2

Résultat =

Obj3 = tab[0..4] = [ 0 , 1 , 1 , 1 , 0 ]

où alors
Obj3 = tab[0..4] = [ 0 , 1 , 1 , 2 , 0 ]

Pourquoi dit-on surcharge, parce que l'opérateur agit
sur 2 structures au lieu de 2 variables?

Désolé, si je suis dans le champs, c'est encore très
nouveau ces notions ...

Merci pour ton aide :-)

MiB

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

> Le but ca peut etre par exemple, si tu as une classe cube (c'est toujours le meme exemple) de définir comment additionner deux objets cubes en surchargeant l'opérateur +
> C'est un exemple, je sais pas si ca répond bien à ta question
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour,
> >
> > Dans le cadre d'un cours de C++, je dois faire un
> > exercice pour comprendre la surcharge des opérateurs.
> >
> > J'ai un bouquin qui traite du sujet, mais cela ne me
> > suffit pas, si quelqu'un pouvait me guider un peu sur
> > la compréhension du but recherché lors de la surcharge
> > des opérateurs, j'apprécierais beaucoup.
> >
> > Merci d'avance de vos lumières :-)
> >
> > MiB
>
lundi 17 février 2003 à 19:58:10 | Re : Surcharge des Opérateurs ?

Beuss

La surcharge s'applique aux classes si tu as un truc du genre :

class Cube
{
public:
Cube operator+(Cube c2);
// D'autres trucs
int cote;
}

Cube Cube::operator+(Cube c2)
{
Cube r;
r.cote = cote + c2.cote;
return r;
}

maintenant tu peux appeler un truc du style

Cube c1, c2;

c1.cote = 3;
c2.cote = 4;
c1 = c1+c2;

cout << c1.cote;

Tu peux additionner des cubes, c'est plus clair

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

> Bonjour,
>
> Ce n'est pas très clair pour moi !
> Additionner deux objets ???
> De façon schématique ...
>
> Est-ce que :
>
> Si :
> Obj1 = tab[0..4] = [ 0 , 1 , 0 , 1 , 0 ]
> Obj2 = tab[0..4] = [ 0 , 0 , 1 , 1 , 0 ]
>
> Alors :
> Obj3 = Obj1 + Obj2
>
> Résultat =
>
> Obj3 = tab[0..4] = [ 0 , 1 , 1 , 1 , 0 ]
>
> où alors
> Obj3 = tab[0..4] = [ 0 , 1 , 1 , 2 , 0 ]
>
> Pourquoi dit-on surcharge, parce que l'opérateur agit
> sur 2 structures au lieu de 2 variables?
>
> Désolé, si je suis dans le champs, c'est encore très
> nouveau ces notions ...
>
> Merci pour ton aide :-)
>
> MiB
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Le but ca peut etre par exemple, si tu as une classe cube (c'est toujours le meme exemple) de définir comment additionner deux objets cubes en surchargeant l'opérateur +
> > C'est un exemple, je sais pas si ca répond bien à ta question
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bonjour,
> > >
> > > Dans le cadre d'un cours de C++, je dois faire un
> > > exercice pour comprendre la surcharge des opérateurs.
> > >
> > > J'ai un bouquin qui traite du sujet, mais cela ne me
> > > suffit pas, si quelqu'un pouvait me guider un peu sur
> > > la compréhension du but recherché lors de la surcharge
> > > des opérateurs, j'apprécierais beaucoup.
> > >
> > > Merci d'avance de vos lumières :-)
> > >
> > > MiB
> >
>
mardi 18 février 2003 à 01:25:38 | Re : Surcharge des Opérateurs ?

MichelAliasMiB

Ouf!

C'est tout simple en fait!

Définition de la surcharge des opérateurs :
Nous associons à l'opérateur visé une
"façon de faire" de façon à effectuer
l'opération sur un élément de la classe !

// Fichier Bloc.cpp (Projet Cube)
//
#include <iostream>

using std::cout;
using std::endl;

class Cube
{
public:
Cube();
Cube operator-(Cube c2);
// D'autres trucs

int cote;
};

Cube::Cube()
{
cote=0;
};


Cube Cube::operator-(Cube c2)
{
Cube r;

r.cote=0;

if ( (cote - c2.cote) > 0 )
{
r.cote = cote - c2.cote;
return r;
}
else
{
if ( (c2.cote - cote) > 0 )
{
r.cote = c2.cote - cote;
return r;
}
else return (r);
};
};

int main()
{
Cube c1, c2;

c1.cote = 9;
c2.cote = 3;

cout << "Avant-" << endl;
cout << "c1.cote = " << c1.cote << endl;
cout << "c2.cote = " << c2.cote << endl;

c1 = c1-c2;

cout << "Apr\212s-" << endl;
cout << "c1.cote = " << c1.cote << endl;
cout << "c2.cote = " << c2.cote << endl;

return (0);

}

Merci pour ton aide :-)

MiB


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

> La surcharge s'applique aux classes si tu as un truc du genre :
>
> class Cube
> {
> public:
> Cube operator+(Cube c2);
> // D'autres trucs
> int cote;
> }
>
> Cube Cube::operator+(Cube c2)
> {
> Cube r;
> r.cote = cote + c2.cote;
> return r;
> }
>
> maintenant tu peux appeler un truc du style
>
> Cube c1, c2;
>
> c1.cote = 3;
> c2.cote = 4;
> c1 = c1+c2;
>
> cout << c1.cote;
>
> Tu peux additionner des cubes, c'est plus clair
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour,
> >
> > Ce n'est pas très clair pour moi !
> > Additionner deux objets ???
> > De façon schématique ...
> >
> > Est-ce que :
> >
> > Si :
> > Obj1 = tab[0..4] = [ 0 , 1 , 0 , 1 , 0 ]
> > Obj2 = tab[0..4] = [ 0 , 0 , 1 , 1 , 0 ]
> >
> > Alors :
> > Obj3 = Obj1 + Obj2
> >
> > Résultat =
> >
> > Obj3 = tab[0..4] = [ 0 , 1 , 1 , 1 , 0 ]
> >
> > où alors
> > Obj3 = tab[0..4] = [ 0 , 1 , 1 , 2 , 0 ]
> >
> > Pourquoi dit-on surcharge, parce que l'opérateur agit
> > sur 2 structures au lieu de 2 variables?
> >
> > Désolé, si je suis dans le champs, c'est encore très
> > nouveau ces notions ...
> >
> > Merci pour ton aide :-)
> >
> > MiB
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Le but ca peut etre par exemple, si tu as une classe cube (c'est toujours le meme exemple) de définir comment additionner deux objets cubes en surchargeant l'opérateur +
> > > C'est un exemple, je sais pas si ca répond bien à ta question
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bonjour,
> > > >
> > > > Dans le cadre d'un cours de C++, je dois faire un
> > > > exercice pour comprendre la surcharge des opérateurs.
> > > >
> > > > J'ai un bouquin qui traite du sujet, mais cela ne me
> > > > suffit pas, si quelqu'un pouvait me guider un peu sur
> > > > la compréhension du but recherché lors de la surcharge
> > > > des opérateurs, j'apprécierais beaucoup.
> > > >
> > > > Merci d'avance de vos lumières :-)
> > > >
> > > > MiB
> > >
> >
>


Cette discussion est classée dans : opérateurs, surcharge


Répondre à ce message

Sujets en rapport avec ce message

Surcharge d'opérateurs [ par minet03 ] Salut les amis, Je voulais savoir si c'étais possible de faire des surcharge d'opérateurs sans utiliser les classes ? C'est pour faire des calculs sur surcharge des opérateurs [ par gmisof ] comment on peut utiliser la commande operator de vc++?gmisof surcharge d'opérateurs [ par dyroj ] Bonjour, En apprenant un cour sur le langage c++ je suis arriver au surcharge d'opérateurs. Je pence avoir compris le fonctionnement mais il y a quel Surcharge des opérateurs [ par pinkettee ] Bonjour les amis, j'ai un petit problème à propos de la surcharge des opérateurs J'ai deux classes qui sont : class Cellule{ double note ; }; class surcharge operator << [ par elninodu42 ] Bonjour, Je dois trouver une solution permettant d'afficher dans un flux de chaine. Je ne peux pas utiliser de string... Je dois donc faire une surc Liste des opérateurs [ par GIRAFE ENRHUMEE ] Bonjour, pouvez-vous m'indiquez un lien pour avoir la liste complète des opérateurs C++ dans l'ordre de leur préséance avec leurs associativités ?  Me Class derivée, Surcharge, Template ??? [ par nawakator ] J'ai créer 1class de Base class cTask et 2 class dériver : class cTaskA:cTask et class cTaskB:cTask;La class de Base est virtuel;Je les stockent dans Surcharge de l'opérateur << [ par kenjimax ] Bonjour à tous, Je rencontre un petit probleme avec la surcharge de l'opérateur <<. Dans une classe mere, je veux afficher les caractéristiques d'un Surcharge des apis windows. [ par najjarn ] Bonjour à tous!Je voudrais savoir si je peux réutiliser le code du gestionnaire d'impression qui existe déjà sur windows et lui rajouter d'autre optio comparaison dans une set [ par MrKro ] Je vous explique,Je dois débugger une application qui gère de très grosse structure de donnéees, des Nodes. Elle utilise des set de la STL afin de les


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,858 sec (4)

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