Introduction C
Introduction C
Introduction C
par la pratique
(Support du cours – Niveau Licence Informatique)
Par
El Hassan Abdelwahed - Département d’Informatique
Faculté des Sciences Semlalia Marrakech
Université Cadi Ayyad
Du C vers C++ : Commentaires et Fonctions en ligne
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM – UCAM
Du C vers C++ : Références
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Du C vers C++ : Arguments par défaut
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Du C vers C++ : Recouvrement (ou surcharge) des fonctions
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Du C vers C++ : Déclaration de variables et de constantes
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Du C vers C++ : Gestion dynamique de la mémoire
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Du C vers C++ : Les entrées et sorties
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Les classes & Encapsulation
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Instances (objets) d’une classe & Accès aux membres
En créant une classe, on définit un type <nom classe> et on peut donc déclarer une
instance (objet) de cette classe de la manière suivante:
On accède aux membres (données ou méthodes) d’une classe des deux manières
suivantes:
<pointeur sur une instance de la classe> -> < nom donnée ou méthode de la classe>
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Droits d’accès aux membres d’une classe
Il existe trois modes définissant les droits d’accès aux membres (données et
méthodes) d’une classe :
public
Les méthodes et (plus rarement) les données qui sont déclarées publics sont
accessibles par toutes les méthodes de la classes ainsi que les autres fonctions non
membres de la classe.
private
Les méthodes et les données d’une classe qui sont déclarés comme étant privés ne
sont accessibles que par les méthodes membres de la classe, et en aucun par les
fonctions extérieures à cette classe.
protected
Les méthodes et les données d’une classe qui sont déclarés comme étant protégés
ne sont accessibles que par les méthodes membres des classes dérivées ( notion
héritage).
Remarques:
- Une classe doit contenir au moins un membre publique.
- D’une manière générale, les membres données sont très souvent déclarés privés (private) et
les membres méthodes publiques (public).
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Les Classes (Exemple)
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Constructeur(s) et destructeur d’une classe
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Constructeur(s) & Destructeur (Exemple I)
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Les Classes (Exemple)
Point.prj
point.h
point.cpp
princ.cpp
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Constructeur(s) & Destructeur (Exemple II)
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Héritage (réutilisation)
Une classe peut hériter d’une seule classe de base (héritage simple) ou de
plusieurs classes de base (héritage multiple).
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Héritage
class <nom classe dérivée> : <modificateur accès I> <nom classe de base I>,
<modificateur accès II> <nom classe de base II>,
....
<modificateur accès N> <nom classe de base N>,
{ Déclaration des membres (données et méthodes) de la classes dérivée }
Définitions des méthodes de la classe dérivée
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Héritage & Modificateur d’accès
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Héritage, Gestion des constructeurs et des destructeurs
Lorsque la classe de base possède un constructeur par défaut, celui ci est appelé
automatiquement avant l’appel du constructeur de la classe dérivée.
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Héritage (Exemple)
Classe
Point
Classe
PointColore
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Fonctions virtuelles
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Fonctions virtuelles
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++ : Fonctions Amies
Une fonction amie (friend) d’une classe est une fonction qui n’est pas
membre de cette classe mais qui peut accéder à ses membres privées au
même titre qu’une méthode de cette classe.
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++: Méthodes Amies
De même, une méthode d’une classe A peut accéder aux membres privés d’une
autre classe B. Pour cela, il suffit de déclarer cette méthode comme étant amie
(friend) de la classe B. Ceci en utilisant son nom complet (A:: Méthode):
class A {
// Membres de la classe A
void LamethodeAmie( void );
}
class B {
// Membres privés de la classe B
friend void A::LamethodeAmie( void );
}
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++: Classes Amies
Lorsqu’on souhaite que tous les membres d’une classe A puissent accéder aux
membres privés d’une autre classe B, alors on déclare A comme une classe amie
de B. Dans ce cas, toutes les méthodes de la classe A peuvent accéder aux
membres privés de la classe B :
class A {
// Membres de la classe A
class B {
// Membres privés de la classe B
friend class A;
}
Remarques:
L’utilisation d’amies doit être exceptionnelle car une généralisation de son usage
dénote souvent une mauvaise structure au sein de la hiérarchie de vos classes.
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM
Langage C++: Surcharge des opérateurs
En C++, on peut non seulement surcharger des fonctions mais aussi des
opérateurs standards (*, -, +, &, etc.). C’est à dire que l’on peut modifier (adapter)
le comportement de ces opérateurs.
Introduction au langage C++ - Par El Hassan Abdelwahed – Département d’Informatique – FSSM - UCAM