Vous êtes sur la page 1sur 22

Cours PROGRAMMATION

ORIENTEE OBJET C++


Cours réservé au LMD1

M. CHATCHUIN DJOKO Dassy ING R&T


NOTION DE CLASSE
• Tout en C ++ est associé aux classes et aux objets, ainsi qu'à ses
attributs et méthodes. Par exemple: dans la vraie vie, une voiture est
un objet . La voiture a des attributs , tels que le poids et la couleur, et
des méthodes , telles que conduire et freiner.
• Les attributs et les méthodes sont essentiellement des variables et
des fonctions qui appartiennent à la classe. Ceux-ci sont souvent
appelés «membres de la classe».
• Une classe est un type de données défini par l'utilisateur que nous
pouvons utiliser dans notre programme, et il fonctionne comme un
constructeur d'objet, ou un "plan" pour créer des objets.
Création de classe
Nom de la classe

class nom_de_la_classe{
Spécificateur d’accès:
Données membres;
Fonctions membres;
}; Le point virgule est très
important
Exemple
Nous avons crée une
classe qui s’appelle Point
Class Point{
private : Abscisse et ordonnee sont des données
Double abscisse, ordonnee;
membres déclarées avec une visibilité
………………………………………………. private
public :
Point();
Point(double a, double b);
~Point();
Void affiche(); fonctions membres déclarées avec une visibilité public
Point additiontionne(Point);
………………………………………….
};
Les spécificateurs:
public => les membres sont accessibles depuis
l'extérieur de la classe

private => les membres ne sont pas accessibles depuis


l'extérieur de la classe

protected => les membres ne sont pas accessibles depuis


l'extérieur de la classe, cependant,
ils sont accessibles dans les classes héritées..
NOTION D’OBJET par l’exemple
Int main(){
Point P1, P2, P3, *P4,….; P1, P2, P3, *P4,…., sont des
objets créés à partir de la classe
…………………………………….. Point
return 0;
}
D’où « un objet est une instance de classe »

OK!!!!!!
Magnifiqueee
Méthodes ou fonctions membres
Les méthodes membres sont des fonctions qui
appartiennent à la classe.

Il existe deux façons de définir des fonctions qui


appartiennent à une classe:
➢A l’intérieur de la classe;
➢A l’extérieur de la classe
A l’intérieur de la classe;
*Class Point{
private :
Double abscisse, ordonnee;
public :
Void affiche(){
cout << ‘’Ce point à pour qbscisse : (‘’ << qbscisse << ‘’,’’
<< ordonnee<<‘’)’’<<endl;
}
};
*Pour notre classe Point présentée plus haut, nous ne prendrons que la fonction affiche() en guise d’exemple
A l’extérieur de la classe
*Class Point{
private :
Double abscisse, ordonnee;
public :
Void affiche();
};
Void Point::affiche(){
cout << ‘’Ce point à pour qbscisse : (‘’ << qbscisse << ‘’,’’
<< ordonnee<<‘’)’’<<endl;
}

*Pour notre classe Point présentée plus haut, nous ne prendrons que la fonction affiche() en guise d’exemple
A l’extérieur de la classe
Récapitulatif:
Voici la syntaxe de la définition d’une fonction à l’extérieure de la classe

void Point::affiche()
type nom_de_la_classe :: nom_de_la_fonction(liste_paramètre){
//Bloc d(instructions
}
NB: « IL ne faut surtout pas oublier l’opérateur de résolution
de portée :: »
OK!!!!!! D’accord???
Constructeurs
Un constructeur est une méthode spéciale qui est automatiquement appelée
lorsqu'un objet d'une classe est créé. ➢ Il a le même nom que la classe;
Il a 2 caractéristiques principales :
➢ Il n’a pas de type e retour;
On ne met pas de
type de retour devant un constructeur

Class Point{
private :
Double abscisse, ordonnee;
Constructeur sans paramètre
public :
NOOONNNNN

int Point();
Constructeur avec paramètres
void Point(double a, double b);
float Point(Point&); Constructeur de copie
};
Abstraction
L'abstraction des données consiste à ne fournir que des
informations essentielles au monde extérieur et à cacher leurs
détails de base, c'est-à-dire à représenter les informations
nécessaires dans le programme sans présenter les détails.

L'abstraction des données est une technique de programmation


(et de conception) qui repose sur le principe d'interface qui est
une séparation entre le monde intérieur(code source du
programme) et le monde extérieur(). de la mise en œuvre.
Abstraction

ABSTRACTION (interface)
Code source Utilisation du programme
Encapsulation
Le but de l'encapsulation est de s'assurer que les données
"sensibles" soient cachées aux utilisateurs. .

C’est la raison pour laquelle, vous devez déclarer par défaut


les données membres de la classe comme private(C’est-à-
dire inaccessible depuis l’extérieur)

Si vous voulez accéder à ces membres private, utiliser les


getters et setters.
C’est quoi un getters?
• Voir TP
C’est quoi un setters?
• Voir TP
Héritage
• C’est le principe selon lequel on fait hériter les attributs et les
méthodes d'une classe à une autre.

On a ainsi :

➢ La classe dérivée (enfant) : c’est la classe qui hérite d'une autre classe

➢ La classe de base (parent) : c’est la classe héritée,


Exemple Héritage simple
:
Il faut utiliser l’opérateur ’’ ‘’ pour écrire une relation d’héritage

Class Point{ class couleurPoint : public Point {


protected : private :
double abscisse, ordonnee; string couleur;
public :
void affiche(); public :
public : void affiche(){
Point(); cout<<abscisse<<endl;
Point(double a, double b); cout<<ordonnee<<endl;
Point(Point&); }
}; };
Exemple Héritage à plusieurs niveaux
class Point{
protected : class couleurPoint : public Point {
double abscisse, //Bloc dinstruction
ordonnee;
};
public :
void affiche();
A
public :
Point();
Point(double a, double b);
Point(Point&);
B class formePoint : public couleurPoint {
}; //Bloc d’instructions
};
C
Exemple Héritage multiple
class Point{ class couleurPoint {
//Bloc dinstructions //Bloc dinstructions
}; };

class formePoint : public Point , public couleurPoint {


//Bloc d’instructions
A B … };

class C : spécificateur_acces A , spécificateur_acces B , spécificateur_acces … {


C //Bloc d’instructions
};
spécificateur_acces : private, protected, public
Tableau récapitulatif du mode d’héritage

Specificateur_acces données
Mode accès aux données de la classe mère par la
membres et fonctions membres de la
classe fille avec le specificareur_acces
classe mère

public protected private


public public inaccessible inaccessible
protected protected protected protected
private private private private
Polymorphisme
Le polymorphisme signifie "plusieurs formes’’

Il se produit lorsque nous avons de nombreuses classes qui sont


liées les unes aux autres par héritage.

Vous aimerez peut-être aussi