POO Part II C++ 2021-2022
POO Part II C++ 2021-2022
POO Part II C++ 2021-2022
Constructeur de recopie
Fonctions Amies
Membres statiques d’une classe
Surdéfinition des opérateurs
Héritage
POO
Constructeur de recopie
POO
Fonctions Amies
class A
{ La fonction fct, membre de la classe B,
..... ayant le prototype spécifié, est autorisée à
friend B:fct (-----) ; accéder aux privés de A
.....
};
M. Mahjoub - ENISO 2021-2022 9
Fonctions Amies
2) Fonction membre d’une classe B, amie d’une autre classe A (suite)
3) Toutes les fonctions d’une classe B sont amies d’une autre classe A
POO
Membres statiques d’une
Classe
class NomClasse
{………
static Type NomAttributStatique;
………
};
POO
Surcharge des opérateurs
class vecteur3d
{ float x, y, z ;
public :
vecteur3d (float c1=0.0, float c2=0.0, float c3=0.0)
{ x = c1 ; y = c2 ; z = c3 ;}
};
#include <iostream>
using namespace std ;
main()
{
vecteur3d v1 (3,4,5), v2 (4,5,6), v3 (3,4,5) ;
cout << "v1==v2 : " << (v1==v2) << " v1!=v2 : " << (v1!=v2) << "\n" ;
cout << "v1==v3 : " << (v1==v3) << " v1!=v3 : " << (v1!=v3) << "\n" ;
}
//Exécution
v1==v2 : 0 v1!=v2 : 1
v1==v3 : 1 v1!=v3 : 0
M. Mahjoub - ENISO 2021-2022 31
class vecteur3d Solution avec
{ float x, y, z ; fonctions amies
public :
vecteur3d (float c1=0.0, float c2=0.0, float c3=0.0)
{ x = c1 ; y = c2 ; z = c3 ;}
friend int operator == (vecteur3d, vecteur3d) ;
friend int operator != (vecteur3d, vecteur3d) ;
};
POO
L’Héritage
Définition
•C'est le fait de définir une nouvelle classe en se basant sur la définition
d'une classe déjà existante. La nouvelle classe hérite alors les attributs et
les méthodes de la classe existante et ce en plus de ses propres membres.
• L'héritage est un concept propre à la POO.
Remarques
• La classe dérivée constitue une spécialisation de la classe de base.
• La classe de base constitue une généralisation de la classe dérivée.
Intérêts
• Réutilisation des modules déjà existants.
• Factorisation des propriétés communes à un certain nombre de classes →
Rendre les programmes moins complexes et plus facilement maintenables.
M. Mahjoub - ENISO 2021-2022 35
Exemple
class Document
class Livre : public Document
{
{
char Reference[10];
private:
char Titre[100];
char Auteur[10];
void Afficher();
char Editeur[100];
char* GetReference();
public:
char* GetTitre();
char* GetAuteur();
};
char* GetEditeur();
};