Vous êtes sur la page 1sur 17

République Tunisienne Université de Carthage

Ministère de l’Enseignement Supérieur et Ecole Nationale d’Ingénieurs de Bizerte


de la Recherche Scientifique

Programmation orientée objet


Langage C++
GI1 et GM1
(Semestre 2)

Safa Hachani & Islam ELLEUCH

Safa.hachani@enib.ucar.tn / elleuchislam@gmail.com

2023-2024
CHAPITRE 2

Classes – concepts de
base
Plan

Introduction sur le concept des classes

Syntaxe de définition d’une classe

Encapsulation

Constructeur / Destructeur

Méthodes constantes

1
Introduction – Classe

Concept de classe

Ensemble d’objets ayant des propriétés communes


Chaque objet d’une classe (instance) a les mêmes attributs.
Chaque objet peut avoir des valeurs différentes des attributs qui
représentent l’état de l’objet.
Tous les objets d’une classe ont le même comportement : méthodes.

On appelle membres d’une classe les attributs et les méthodes de la classe.

2
Introduction – Classe

Concept de classe

Habituellement, en C++, on sépare l’interface de la classe de son implantation.

L’interface (la déclaration) d’une classe est écrite dans un fichier d’entêtes .hh.

L’implantation( la définition) (code des méthodes) est écrite dans un fichier .cc.

Il est conseillé de donner le même nom aux deux fichiers.

3
Introduction – Classe

Concept de classe
Une classe est formée de membres : attributs et méthodes.

L’interface d’une classe doit donner les noms des membres…

Pour les attributs, le type doit être donné

Pour les méthodes, la signature doit être donnée

L’implantation d’une classe doit donner le corps (code) des méthodes. Dans
le cas de méthodes simples, on s’autorise à donner le corps dans le fichier
d’interface.

4
Syntaxe de définition - Classe

Syntaxe :

5
Syntaxe de définition - Classe

6
Syntaxe de définition - Classe

7
Syntaxe de définition - Classe

Déclaration d’instance :
Une fois définie, la classe peut être utilisée comme un type.

8
Syntaxe de définition - Classe

Accès aux attributs:

Dans une méthode, on peut utiliser directement un nom d’attribut pour


désigner l’attribut correspondant de l’instance sur laquelle la méthode a été
appelée…

Ou utiliser le pointeur this qui repère l’instance courante. C’est un pointeur,


donc on doit utiliser l’opérateur ->.

9
Syntaxe de définition - Classe

Appel de méthode :

Dans une méthode, on peut utiliser directement un nom de méthode pour


appeler cette méthode sur l’instance sur laquelle la méthode a été appelée.…

Ou utiliser le pointeur this qui repère l’instance courante.

10
Syntaxe de définition - Classe

11
Encapsulation

L’encapsulation permet de «cacher» des membres d’une classe afin que


l’interface de la classe ne dispose que des membres qui ont été choisis par le
concepteur de la classe.
L’encapsulation facilite la mise au point, la réutilisation, et l’évolution.

En C++, l’encapsulation permet de choisir parmi 3 niveaux de visibilité:


public : Le membre est visible partout.
private : Le membre est visible dans toutes les méthodes de la
classe et invisible ailleurs.
protected : Le membre est visible dans toutes les méthodes de la
classe (ainsi que dans les méthodes de ssous-classes), et invisible
ailleurs.

12
Encapsulation

Habituellement, tous les attributs d’une classe sont déclarés private, et


certaines méthodes sont déclarées public.

Tous les membres qui sont déclarés après une étiquette de visibilité ont cette
visibilité là. Les membres qui sont déclarés avant la première étiquette de
visibilité sont privés.

13
Encapsulation

Un attribut public peut être lu et modifié (comme une variable). Parfois, on


veut montrer la valeur de l’attribut sans autoriser la modification.
Rendre l’attribut privé, et fournir un accesseur (en lecture).

14
Exercice 1 – Classe

TD – Classes –Exercice 1

Enoncé – Partie 1:
Nous nous proposons d'écrire une application permettant de gérer des personnes.
Nous allons pour cela définir le type Personne à l'aide d'une classe.

1 - Proposez une interface (fichier Personne.h); l'accès aux attributs sera privé.
-Dans cette première version, vous offrirez les fonctions membres suivantes :
- une procédure afficher () : affiche toutes les informations d’une personne
- nom() : Retourne le nom sur la sortie standard.
- Age() : Retourne l’age sur la sortie standard.
- Fixer_Nom(String const & s) : permet de donner une valeur a l’attribut nom
- Fixer_Age(int a) : permet de donner une valeur a l’attribut âge
2- Implémenter les fonctions membres (fichier Personne.cc). 50

3- déclarer un main dans lequel vous créer une instance de personne avec les données
(Flen, 20 ans) puis vous l’afficher une fois par appel a la méthode afficher et une fois par
la récuperartion de ces attributs a l’aide des fonctions membres de la classe.

15

Vous aimerez peut-être aussi