Documente Academic
Documente Profesional
Documente Cultură
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Yann Morre
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
www.lcoms.univ-lorraine.fr, www.morere.eu
Surcharge
doprateurs
Septembre 2013
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
1 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
encapsulation
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
2 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
encapsulation
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
2 / 59
Code source
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
3 / 59
Code source
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
3 / 59
Mthodes de lobjet
Y. Morre
Introduction
http://www.cplusplus.com/reference/string/string/
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
4 / 59
Excution
$ ./objetStringSize
Longueur de la chaine : 9
C++ et Programmation Oriente Objet : Objets, classes et surcharge Y. Morre 2013
Mthodes de lobjet
Y. Morre
Introduction
http://www.cplusplus.com/reference/string/string/
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
4 / 59
Excution
$ ./objetStringSize
Longueur de la chaine : 9
C++ et Programmation Oriente Objet : Objets, classes et surcharge Y. Morre 2013
Dautres mthodes
La mthode erase() : supprime tout le contenu de la chane ;
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
5 / 59
Excution
$ ./objetStringOtherMethod
La chane contient :
jour !
jour
C++ et Programmation Oriente Objet : Objets, classes et surcharge Y. Morre 2013
Dautres mthodes
La mthode erase() : supprime tout le contenu de la chane ;
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
5 / 59
Excution
$ ./objetStringOtherMethod
La chane contient :
jour !
jour
C++ et Programmation Oriente Objet : Objets, classes et surcharge Y. Morre 2013
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
6 / 59
Les classes
Code minimal
Classe Personnage qui va reprsenter un personnage de jeu de rle
class Personnage
{
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Syntaxe
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Attention
il y a un point-virgule aprs laccolade fermante
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
7 / 59
Les classes
Code minimal
Classe Personnage qui va reprsenter un personnage de jeu de rle
class Personnage
{
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Syntaxe
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Attention
il y a un point-virgule aprs laccolade fermante
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
7 / 59
Les classes
Code minimal
Classe Personnage qui va reprsenter un personnage de jeu de rle
class Personnage
{
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Syntaxe
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Attention
il y a un point-virgule aprs laccolade fermante
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
7 / 59
Les classes
Attributs et mthodes
De quoi notre objet a t il besoin pour fonctionner ?
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Attributs
Il caractriser la classe : variables qui voluent dans le temps ;
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Mthodes
Elles dfinissent les actions de la classe ;
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
8 / 59
Les classes
Attributs et mthodes
De quoi notre objet a t il besoin pour fonctionner ?
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Attributs
Il caractriser la classe : variables qui voluent dans le temps ;
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Mthodes
Elles dfinissent les actions de la classe ;
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
8 / 59
Les classes
Attributs et mthodes
De quoi notre objet a t il besoin pour fonctionner ?
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Attributs
Il caractriser la classe : variables qui voluent dans le temps ;
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Mthodes
Elles dfinissent les actions de la classe ;
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
8 / 59
Cration de la classe
POO C++
Y. Morre
Introduction
Fichier Personnage.h
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
# ifndef P E R S O N N A G E _ H _ I N C L U D E D
# define P E R S O N N A G E _ H _ I N C L U D E D
# include < iostream >
# include < string >
using n a m e s p a c e std ;
class Personnage
{
// M thodes
void recevoirDegat s ( int nbDegats ) {
}
void attaquer ( Personnage & cible ) {
}
void b oi re Po ti on DeV i e ( int quant itePotio n ) { }
void changerArme ( string nomNouvelleArme , int d e g a t s N o u v e l l e A r m e ) {
bool estVivant () { return true ;}
// A t t r i b u t s
int m_vie ;
int m_mana ;
string m_nomArme ;
int m_degatsArme ;
};
# endif // P E R S O N N A G E _ H _ I N C L U D E D
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
9 / 59
Instanciation en objets
POO C++
Fichier testPersonage.cpp
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Compilation
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
10 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
11 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
11 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
11 / 59
Modification de la classe
POO C++
Fichier Personnage.h
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
# ifndef P E R S O N N A G E _ H _ I N C L U D E D
# define P E R S O N N A G E _ H _ I N C L U D E D
# include < iostream >
# include < string >
using n a m e s p a c e std ;
class Personnage
{
// Tout ce qui suit est public ( a c c e s s i b l e depuis l ext rieur )
public :
// M thodes
void recevoirDegat s ( int nbDegats ) {
}
void attaquer ( Personnage & cible ) {
}
void b oi re Po ti on DeV i e ( int quant itePotio n ) { }
void changerArme ( string nomNouvelleArme , int d e g a t s N o u v e l l e A r m e ) {
bool estVivant () { return true ;}
private :
// Tout ce qui suit est priv ( i n a c c e s s i b l e depuis l ext rieur )
// A t t r i b u t s
int m_vie ;
int m_mana ;
string m_nomArme ;
int m_degatsArme ;
};
# endif // P E R S O N N A G E _ H _ I N C L U D E D
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Compilation
Surcharge
doprateurs de
comparaisons
Bibliographie /
12 / 59
Modification de la classe
POO C++
Fichier Personnage.h
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
# ifndef P E R S O N N A G E _ H _ I N C L U D E D
# define P E R S O N N A G E _ H _ I N C L U D E D
# include < iostream >
# include < string >
using n a m e s p a c e std ;
class Personnage
{
// Tout ce qui suit est public ( a c c e s s i b l e depuis l ext rieur )
public :
// M thodes
void recevoirDegat s ( int nbDegats ) {
}
void attaquer ( Personnage & cible ) {
}
void b oi re Po ti on DeV i e ( int quant itePotio n ) { }
void changerArme ( string nomNouvelleArme , int d e g a t s N o u v e l l e A r m e ) {
bool estVivant () { return true ;}
private :
// Tout ce qui suit est priv ( i n a c c e s s i b l e depuis l ext rieur )
// A t t r i b u t s
int m_vie ;
int m_mana ;
string m_nomArme ;
int m_degatsArme ;
};
# endif // P E R S O N N A G E _ H _ I N C L U D E D
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Compilation
Surcharge
doprateurs de
comparaisons
Bibliographie /
12 / 59
Encapsulation
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
13 / 59
Encapsulation
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
13 / 59
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
14 / 59
Fichier Personnage.h
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
15 / 59
Fichier Personnage.cpp
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
16 / 59
Fichier mainPersonnage.cpp
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
17 / 59
Explications
POO C++
Fichier Personnage.h
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Fichier Personnage.cpp
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Fichier mainPersonnage.cpp
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
18 / 59
Explications
POO C++
Fichier Personnage.h
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Fichier Personnage.cpp
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Fichier mainPersonnage.cpp
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
18 / 59
Explications
POO C++
Fichier Personnage.h
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Fichier Personnage.cpp
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Fichier mainPersonnage.cpp
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
18 / 59
Remarques diverses
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
struct ou class
On peut utiliser struct en C++ pour dfinir une classe. Dans ce cas
les mthodes et attributs sont publics au lieu de privs par dfaut.
Directives using
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
19 / 59
Remarques diverses
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
struct ou class
On peut utiliser struct en C++ pour dfinir une classe. Dans ce cas
les mthodes et attributs sont publics au lieu de privs par dfaut.
Directives using
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
19 / 59
Constructeur / Destructeur
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Dfinitions
le constructeur : cest une mthode appele automatiquement
chaque fois que lon cre un objet bas sur cette classe.
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
20 / 59
Constructeur
POO C++
Dfinitions
cest une mthode qui sert construire lobjet. Ds quon cre
un objet, le constructeur est automatiquement appel ;
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Rle du constructeur
Rle dinitialisation de variables ;
21 / 59
Constructeur
POO C++
Dfinitions
cest une mthode qui sert construire lobjet. Ds quon cre
un objet, le constructeur est automatiquement appel ;
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Rle du constructeur
Rle dinitialisation de variables ;
21 / 59
Constructeur
POO C++
Cration
cest une mthode un peut particulire :
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Fichier Personnage.h
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
22 / 59
Constructeur
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Cration
on ajoute ensuite le code source du constructeur dans
limplmentation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Personnage :: Personnage ()
{
m_vie = 100;
m_mana = 100;
m_nomArme = " Ep e rouill e " ;
m_degatsArme = 10;
}
Surcharge
doprateurs
Introduction
Attention
Il ny a pas de type de retour pour le constructeur.
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
23 / 59
Constructeur
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Syntaxe
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
24 / 59
Constructeur
POO C++
Surcharger le constructeur
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Intrt de la surcharge
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Syntaxe
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
25 / 59
// Dans P e r s o n n a g e . h
Personnage ( std :: string nomArme , int degatsArme );
// pr fix std :: o b l i g a t o i r e car pas de using dans . h
// Dans P e r s o n n a g e . cpp
Personnage :: Personnage ( string nomArme , int degatsArme ) : m_vie (100) ,
m_mana (100) , m_nomArme ( nomArme ) , m_degatsArme ( degatsArme ){
}
// u t i l i s a t i o n m a i n P e r s o n n a g e . c
Personnage david , goliath ( " Ep e aiguis e " , 20);
C++ et Programmation Oriente Objet : Objets, classes et surcharge Y. Morre 2013
Destructeur
POO C++
Dfinitions
Cest une mthode appele lorsque lobjet est supprim de la
mmoire.
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Exemple
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
26 / 59
Mthodes constantes
POO C++
Y. Morre
Explications
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Syntaxe
// Dans P e r s o n n a g e . h P r o t o t y p e de la m thode :
void maMethode ( int parametre ) const ;
// Dans P e r s o n n a g e . cpp D c l a r a t i o n de la m thode :
void MaClasse :: maMethode ( int parametre ) const
{
// code source
}
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
27 / 59
Mthodes constantes
POO C++
Exemples 1
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Intrt
Pour vous : vous savez que votre mthode ne fait que lire les
attributs et vous vous interdisez ds le dbut de les modifier.
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
28 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Fichier Arme.h
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
29 / 59
# ifndef DEF_ARME
# define DEF_ARME
# include < iostream >
# include < string >
class Arme {
public :
Arme ();
Arme ( std :: string nom , int degats );
void changer ( std :: string nom , int degats );
void afficher () const ;
private :
std :: string m_nom ;
int m_degats ;
};
# endif
Fichier Arme.cpp
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Et ensuite ?
Modification de la classe Personnage pour prendre en compte et
utiliser la nouvelle classe ;
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
30 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Fichier Personnage.h
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
31 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Modification de Personnage.cpp
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
// M o d i f i c a t i o n r aliser
Personnage :: Personnage () : m_vie (100) , m_mana (100){
// Rien mettre dans le corps du constructeur , tout a d j t fait !
}
Personnage :: Personnage ( string nomArme , int degatsArme ) : m_vie (100) ,
m_mana (100) , m_arme ( nomArme , degatsArme ){
// Rien mettre dans le corps du constructeur , tout a d j t fait !
}
void Personnage :: attaquer ( Personnage & cible ){
cible . recev oirDegat s ( m_arme . getDegats ());
// On inflige la cible les d g ts que cause notre arme
}
void Personnage :: changerArme ( string nomNouvelleArme , int d e g a t s N o u v e l l e A r m e ){
m_arme . changer ( nomNouvelleArme , d e g a t s N o u v e l l e A r m e );
}
Surcharge
doprateurs de
comparaisons
Bibliographie /
32 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Modification de Arme.cpp
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
33 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
34 / 59
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
// Dans P e r s o n n a g e . h
void afficherEtat () const ;
// Dans P e r s o n n a g e . cpp
void Personnage :: afficherEtat () const {
cout << " Vie : " << m_vie << endl ;
cout << " Mana : " << m_mana << endl ;
m_arme . afficher ();
}
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
35 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
int main () {
// Cr ation des p e r s o n n a g e s
Personnage david , goliath ( " Ep e aiguis e " , 20);
// Au combat !
goliath . attaquer ( david );
david . bo ireP ot io nD e V i e (20);
goliath . attaquer ( david );
david . attaquer ( goliath );
goliath . changerArme ( " Double hache tranchante v n neuse de la mort " , 40);
goliath . attaquer ( david );
// Temps mort ! Voyons voir la vie de chacun ...
cout << " David " << endl ;
david . afficherEtat ();
cout << endl << " Goliath " << endl ;
goliath . afficherEtat ();
return 0;
}
Mthodes constantes
Interaction entre
classes
Excution
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
36 / 59
$ ./ main Personna ge
David
Vie : 40
Mana : 100
Arme : Ep e rouill e ( D gats : 10)
Goliath
Vie : 90
Mana : 100
Arme : Double hache tranchante v n neuse de la mort ( D gats : 40)
C++ et Programmation Oriente Objet : Objets, classes et surcharge Y. Morre 2013
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
37 / 59
Surcharge doprateurs
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Dfinition
Cest une technique qui permet de raliser des oprations
mathmatiques intelligentes entre vos objets ;
Utiliser +,-,*,/, etc. sur des objets quelconques (pas
seulement les types numriques).
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
En pratique
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Soit une classe pour stocker une dure (par exemple 4h23m)
Soit deux objets de type Duree que vous voulez additionner
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
38 / 59
Classe Duree
POO C++
Y. Morre
Gnralits
Dfinitions dune classe adapte la surcharge ;
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Fichier Duree.h
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
# ifndef DEF_DUREE
# define DEF_DUREE
class Duree {
public :
Duree ( int heures = 0 , int minutes = 0 , int secondes = 0);
// Valeur par d faut dans le c o n s t r u c t e u r
private :
int m_heures ;
int m_minutes ;
int m_secondes ;
};
# endif
Surcharge
doprateurs de
comparaisons
Bibliographie /
39 / 59
Classe Duree
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Duree :: Duree ( int heures , int minutes , int secondes ) : m_heures ( heures
m_minutes ( minutes ) , m_secondes ( secondes ){
}
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
// Fichier m a i n D u r e e . cpp
# include < iostream >
# include " Duree . h "
int main (){
Duree duree1 (0 , 10 , 28) , duree2 (0 , 15 , 2);
return 0;
}
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
40 / 59
Oprateur +
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
41 / 59
Oprateur +=
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
42 / 59
Mthode +=
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Important
Cest un pointeur vers lobjet quon est en train de manipuler.
43 / 59
Important
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Fonction +
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
44 / 59
Code final
Introduction
La POO
Les secret de string
# ifndef DEF_DUREE
# define DEF_DUREE
class Duree {
public :
Duree ( int heures = 0 , int minutes = 0 , int secondes = 0);
// Valeur par d faut dans le c o n s t r u c t e u r
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
};
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
45 / 59
Code final
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
46 / 59
Code final
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
47 / 59
Apport de la surcharge
Introduction
La POO
Les secret de string
Les classes
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
// P r o t o t y p e
Duree & operator +=( int secondes );
// Impl m e n t a t i o n
Duree operator +( Duree const & duree , int secondes )
{
Duree copie ( duree );
copie += secondes ;
return copie ;
}
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
48 / 59
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
49 / 59
La POO
Les secret de string
Les classes
Les oprateurs de flux sont dfinis par dfaut pour les types de
variables int,double,char et string ;
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Remarque
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
50 / 59
La POO
Les secret de string
Les classes
Les oprateurs de flux sont dfinis par dfaut pour les types de
variables int,double,char et string ;
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Remarque
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
50 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
ostream & operator < <( ostream & flux , Duree const & duree )
{
flux << duree . m_heures << " h " << duree . m_minutes << " m "
<< duree . m_secondes << " s " ; // Erreur
return flux ;
}
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Solutions
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Problmes
Fonction externe la classe. Ne compile pas ! pas daccs aux
attributs ;
51 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
ostream & operator < <( ostream & flux , Duree const & duree )
{
flux << duree . m_heures << " h " << duree . m_minutes << " m "
<< duree . m_secondes << " s " ; // Erreur
return flux ;
}
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Solutions
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Problmes
Fonction externe la classe. Ne compile pas ! pas daccs aux
attributs ;
51 / 59
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
ostream & operator < <( ostream & flux , Duree const & duree )
{
flux << duree . m_heures << " h " << duree . m_minutes << " m "
<< duree . m_secondes << " s " ; // Erreur
return flux ;
}
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Solutions
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Problmes
Fonction externe la classe. Ne compile pas ! pas daccs aux
attributs ;
51 / 59
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
// Duree . h ajouter
// std :: o b l i g a t o i r e car pas d include < iostream > dans . h
void afficher ( std :: ostream & flux ) const ;
std :: ostream & operator < <( std :: ostream & flux , Duree const & duree );
// Duree . cpp
// partie externe la classe
ostream & operator < <( ostream & flux , Duree const & duree )
{
duree . afficher ( flux ) ; // <- C h a n g e m e n t ici
return flux ;
}
// Partie public de la classe
void Duree :: afficher ( ostream & flux ) const
{
flux << m_heures << " h " << m_minutes << " m " << m_secondes << " s " ;
}
// Dans m a i n D u r e e . cpp
Duree duree3 (2 , 25 , 28) , duree4 (0 , 16 , 33);
cout << duree4 << " et " << duree3 << endl ;
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
52 / 59
Exemple : Oprateur ==
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
53 / 59
Implmentation doperator==
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Mthode
On compare chaque fois un attribut de lobjet dans lequel on se
trouve avec un attribut de lobjet de rfrence
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Mme Problme
Fonction externe la classe. Ne compile pas ! pas daccs aux
attributs ;
-> comme prcdemment on passe par une mthode de la classe.
54 / 59
Implmentation doperator==
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Mthode
On compare chaque fois un attribut de lobjet dans lequel on se
trouve avec un attribut de lobjet de rfrence
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Mme Problme
Fonction externe la classe. Ne compile pas ! pas daccs aux
attributs ;
-> comme prcdemment on passe par une mthode de la classe.
54 / 59
Implmentation doperator==
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Mthode
On compare chaque fois un attribut de lobjet dans lequel on se
trouve avec un attribut de lobjet de rfrence
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
Mme Problme
Fonction externe la classe. Ne compile pas ! pas daccs aux
attributs ;
-> comme prcdemment on passe par une mthode de la classe.
54 / 59
Implmentation doperator==
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
55 / 59
// Dans Duree . h
// Dans la classe
bool estEgal ( Duree const & b ) const ;
// A l ext rieur
bool o perator ==( Duree const & a , Duree const & b );
// Dans Duree . cpp
bool Duree :: estEgal ( Duree const & b ) const {
// Teste si a . m_heure == b . m_heure etc .
if ( m_heures == b . m_heures && m_minutes == b . m_minutes
&& m_secondes == b . m_secondes )
return true ;
else
return false ;
}
bool operator ==( Duree const & a , Duree const & b ){
return a . estEgal ( b );
}
Dans mainDuree . cpp
Duree duree5 (0 , 10 , 28) , duree6 (0 , 10 , 28);
if ( duree5 == duree6 )
cout << " Les durees sont identiques \ n " ;
else
cout << " Les durees sont differentes \ n " ;
Implmentation doperator!=
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
// Fichier Duree . h
bool operator !=( Duree const & a , Duree const & b );
// Fichier Duree . cpp
bool operator !=( Duree const & a , Duree const & b )
{
if ( a == b ) // On utilise l op rateur == qu on a d fini pr c demment
return false ; // S ils sont gaux , alors ils ne sont pas diff re
else
return true ; // Et s ils ne sont pas gaux , c est qu ils sont di
}
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
56 / 59
Implmentation doperator<
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
57 / 59
Bibliographie/Webographie
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Sources
Systmes et Technologies Objet
http://casteyde.christian.free.fr/
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Wikipediahttp://fr.wikipedia.org
Destructeur
Mthodes constantes
Interaction entre
classes
Openclassrooms http://fr.openclassrooms.com/
Cppreference http://www.cplusplus.com/reference/
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
58 / 59
Evolution
POO C++
Y. Morre
Introduction
La POO
Les secret de string
Les classes
Crer une classe
Droits daccs en
encapsulation
Sparation
prototypes et
dfinitions
Constructeur /
Destructeur
Constructeur
Destructeur
Mthodes constantes
Interaction entre
classes
Surcharge
doprateurs
Introduction
Classe Duree
Surcharge
doprateurs
arithmtiques
Surcharge
doprateurs de flux
Surcharge
doprateurs de
comparaisons
Bibliographie /
59 / 59