SlideShare a Scribd company logo
PLAN
nes
es
ateurs
ation
mies
2
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Définition
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Le respect du principe d'encapsulation impose donc que :
 Les attributs ne doivent pas être accessibles publiquement :
• Garantir la cohérence des données
• Fournir des possibilités minimales en terme de
modifications
 Toute méthode non nécessaire à l'utilisateur doit étre
déclarer private
 Toute méthode que vous souhaitez rendre disponible à
l'utilisateur, et qui définit donc l'interface de la classe est à
déclarer public
 Les constructeurs et destructeurs doivent toujours être publics !
1. Règles:
2. Exemple:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. Règles:
2. Exemple:
class point
{ // déclaration des membres privés
private :
int x ;
int y ;
// déclaration des membres publics
public :
void initialiser (int, int) ;
void afficher () ;
} ;
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. les accesseurs: 2. Les mutateur:
Exemple: Exemple:
• récupérer le contenu d'une donnée membre
protégée, pour accomplir sa fonction :
• doit avoir comme type de retour le type de la
variable à renvoyer
• ne doit pas nécessairement posséder
d'arguments
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. les accesseurs: 2. Les mutateur:
Exemple: Exemple:
Exemple :
class Acc{
private :
int age;
public :
int GetAge();
};
int Acc::GetAge(){
return age;
}
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. les accesseurs: 2. Les mutateur:
Exemple: Exemple:
• Un mutateur est une fonction membre permettant
de modifier le contenu d'une donnée membre
protégée.
• Un mutateur, pour accomplir sa fonction :
 Doit avoir comme paramètre la valeur à assigner à la
donnée
membre. Le paramètre doit donc être du type de la
donnée membre
 Ne doit pas nécessairement renvoyer de valeur (il
possède dans sa plus simple expression le type void
 Il est courant des préfixer le nom des accesseurs /
mutateurs respectivement par Get / Set. Pour cette
raison, on appelle aussi les accesseurs / mutateurs des
getter / setter..
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. les accesseurs: 2. Les mutateur:
Exemple: Exemple:
class Mut{
private :
int _age;
public :
void SetAge(int);
};
void Mut::SetAge(int age){
_age = age;
}
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. Introduction: 3. Exemple:
2. Définition: 4. utilite:
Imaginons les deux fonction suivantes:
Le résultat obtenu ressemble à celui qu’aurait produit l’exécution de
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Le mot-clé « inline» utilisé en C++ s'applique à une
fonction. Il indique au compilateur que chaque appel à la
fonction devra être remplacé par le corps de cette fonction.
Il suffit pour cela que, lors de sa définition, le nom de la
fonction soit précédé du mot inline.
1. Introduction: 3. Exemple:
2. Définition: 4. utilite:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
1. Introduction: 3. Exemple:
2. Définition: 4. utilité:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
l’utilisation des fonctions inlines se fait dans
un but d’éfficacité , d’optimisation ; puisqu’il
n’y a pas d’appel (réel), donc pas de rupture de
séquence, pas de retour etc...
Mais il est clair qu’un tel traitement ne peut
convenir qu’à des fonctions fréquemment
appelées.
1. Introduction: 3. Exemple:
2. Définition: 4. utilite:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
En principe, l’encapsulation interdit à
une fonction membre d’une classe ou toute
fonction d’accéder à des données privées
d’une autre classe. Mais grâce à la notion
d’amitié entre fonctions et classes, il est
possible, lors de la définition de cette
classe d’y déclarer une ou plusieurs
fonctions (extérieurs de la classe) pouvant
accéder à ses membres privés.
1. Introduction:
2. Définition:
3. Les différentes situations d’amitié
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Une fonction amie d’une classe C est une
fonction qui, sans être membre de cette
classe, a le droit d’accéder à tous ses
membres, aussi bien publics que privés.
1. Introduction:
2. Définition:
3. Les différentes situations d’amitié
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Class C{
public:
friend void maFonction();
} ;
void maFonction(){
/* definition de la fonction amie */
}
A notez la qualification friend, bien que déclarée
à l’intérieur de la classe C, la fonction
maFonction() n’est pas membre de cette classe ;
en particulier, elle n’est pas attachée à un objet,
et le pointeur this n’y est pas définie.
1. Introduction:
2. Définition:
3. Les différentes situations d’amitié
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
3. Les différentes situations d’amitié
Fonction indépendante amie d’une classe
Class C{
public:
friend void maFonction();
} ;
void maFonction(){ /*
definition de la fonction amie */
}
Syntaxe:
1. Introduction:
2. Définition:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Fonction membre d’une classe, amie d’une autre classe
Class A;
Class B {
public:
void F(A);
} ;
Class A {
private: int nbr;
public:
friend void B::F(A);
} ;
void B::F(A a){ /* definition de la
fonction amie */
}
La fonction membre de la classe B est ami avec la classe A
 Il faut déclarer A
avant B.
 définir B avant A
3. Les différentes situations d’amitié1. Introduction:
2. Définition:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Fonction indépendante amie de plusieurs classes
Class A ;
Class B {
public:
friend void Fonction(A,B);
} ;
Class A {
public:
friend void Fonction(A,B);
} ;
void Fonction (A a,B b ){
/* definition de la fonction amie */
}
Syntaxe:
3. Les différentes situations d’amitié1. Introduction:
2. Définition:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Une classe amie d’une classe C est une
classe qui a le droit d’accéder à tous les
membres de C.
Une telle classe doit être déclarée dans la
classe qui accorde le droit d’accès),
précédé du mot réservé « friend ».
1. Définition: 2. Syntaxe:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
Class A;
Class B {
public:
void F1(A);
void F1(A);
} ;
Class A {
private: i
nt nbr;
public:
friend class B;
} ;
void B::F1(A a1){ /* définition de la fonction amie
F1*/}
void B::F2(A a2){ /* définition de la fonction amie
F2*/}
1. Définition: 2. Syntaxe:
Définition
Règles
d’encapsulation
Accesseurs et
Mutateurs
Les fonction
Inlines
Les fonction
Amies
Les classes
Amies
Conclusion
• La relation d’amitié doit être utilisée avec précaution , c’est une
entorse à l’ensemble des règles qui régissent les droits d’accès.
• La relation d’amitié n’est pas transitive : les amis des amis de la
classe A ne sont pas forcément les amis de la classe A
• Si la classe A est amie de la classe B ≠ la classe B est amie de la
classe A (pas de symétrie).
• Les amis de classes imbriquées n’ont pas de droit particulier sur
les membres de la classe de niveau supérieur.

More Related Content

What's hot

Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Shellmates
 
Cours python
Cours pythonCours python
Cours python
salmazen
 

What's hot (20)

Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Python
PythonPython
Python
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Systèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisationSystèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisation
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Cours de c
Cours de cCours de c
Cours de c
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stage
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Domain Name System
Domain Name SystemDomain Name System
Domain Name System
 
Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3
 
Cours python
Cours pythonCours python
Cours python
 

Viewers also liked (8)

Surcharge_C++
Surcharge_C++Surcharge_C++
Surcharge_C++
 
Partie 10: Classes Génériques — Programmation orientée objet en C++
Partie 10: Classes Génériques — Programmation orientée objet en C++Partie 10: Classes Génériques — Programmation orientée objet en C++
Partie 10: Classes Génériques — Programmation orientée objet en C++
 
Partie 4: Fonctions - Programmation orientée objet en C++
Partie 4: Fonctions - Programmation orientée objet en C++Partie 4: Fonctions - Programmation orientée objet en C++
Partie 4: Fonctions - Programmation orientée objet en C++
 
Intro to C++ - language
Intro to C++ - languageIntro to C++ - language
Intro to C++ - language
 
Basic c++ programs
Basic c++ programsBasic c++ programs
Basic c++ programs
 
01 c++ Intro.ppt
01 c++ Intro.ppt01 c++ Intro.ppt
01 c++ Intro.ppt
 
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 

Similar to Fonctions_Inline_Amies en C++

c++,language hgkuhyijlkkj,mojiuhjknkjnuin
c++,language hgkuhyijlkkj,mojiuhjknkjnuinc++,language hgkuhyijlkkj,mojiuhjknkjnuin
c++,language hgkuhyijlkkj,mojiuhjknkjnuin
chaimaabaoub09
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
Mansouri Khalifa
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
Moez Moezm
 
Introspection reflection
Introspection reflectionIntrospection reflection
Introspection reflection
Eric Toguem
 

Similar to Fonctions_Inline_Amies en C++ (20)

c++,language hgkuhyijlkkj,mojiuhjknkjnuin
c++,language hgkuhyijlkkj,mojiuhjknkjnuinc++,language hgkuhyijlkkj,mojiuhjknkjnuin
c++,language hgkuhyijlkkj,mojiuhjknkjnuin
 
Ch06
Ch06Ch06
Ch06
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Chapitre3 2013 POO
Chapitre3 2013 POOChapitre3 2013 POO
Chapitre3 2013 POO
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Héritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieHéritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierie
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Modificateurs d'accès en java
Modificateurs d'accès en javaModificateurs d'accès en java
Modificateurs d'accès en java
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)
 
Ch03
Ch03Ch03
Ch03
 
Introspection reflection
Introspection reflectionIntrospection reflection
Introspection reflection
 
Introduction java
Introduction javaIntroduction java
Introduction java
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objets
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 

Recently uploaded

Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
zidani2
 

Recently uploaded (11)

Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptxMARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
 
Gestion des flux de trésorerie dans les entreprises
Gestion des flux de trésorerie dans les entreprisesGestion des flux de trésorerie dans les entreprises
Gestion des flux de trésorerie dans les entreprises
 
Festival de Cannes 2024.pptx
Festival    de     Cannes        2024.pptxFestival    de     Cannes        2024.pptx
Festival de Cannes 2024.pptx
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctions
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 

Fonctions_Inline_Amies en C++