Https:/ecampus-Ensam - Uca.ma/pluginfile - Php/27840/mod Resource/content% PDF
Https:/ecampus-Ensam - Uca.ma/pluginfile - Php/27840/mod Resource/content% PDF
Https:/ecampus-Ensam - Uca.ma/pluginfile - Php/27840/mod Resource/content% PDF
objets - séance 5 -
ENSA Marrakech
10 décembre 2020
Programmation Orientée Objets
Concepts de base
Un objet est une entité pouvant être créée, stockée, manipulée
et détruite.
Un objet possède des attributs (propriétés)
Un objet offre un certain nombre de méthodes (fonctions
membres) pour le manipuler.
Tout objet appartient à une classe.
Objets
Un objet est une entité pouvant être créée, stockée,
manipulée et détruite.
Un objet possède des attributs (propriétés)
Un objet offre un certain nombre de méthodes (fonctions
membres) pour le manipuler.
Tout objet appartient à une classe.
Classes
Une classe consiste à regrouper les objets ayant le même
comportement pour former un même ensemble, appelé :
classe.
Une classe représente un type d’objet
Dans une définition de classe on spécifie :
les attributs de tout objet appartenant à cette classe
les méthodes permettant de manipuler un objet de cette
classe
la visibilité de chaque attribut et méthode (l’encapsulation des
données).
le principe de l’encapsulation est qu’on ne peut agir que sur les
attributs (propriétés) publiques d’un objet.
class Nom_de_la_classe
{
private :
\* declarations des attributs et
des methodes privees *\
public :
\\ declarations de methodes publiques
} ; \\ faire attention au point virgule
Exemple :
class Point
{
public :
void afficher ();
int getAbs ();
int getOrd ();
void initialiser ( int , int );
private :
int abs ;
int ord ;
};
Remarques :
Au sein de la définition d’une méthode, les autres membres
(privés ou publiques) sont directement accessibles (il n’est pas
nécessaire de préciser le nom de la classe) :
Toutes les possibilités offertes par le C++ pour les fonctions
restent valables pour les méthodes (surcharge, arguments par
défaut,. . .).
Toute méthode définie dans sa classe (dans la déclaration de la
classe) est considérée par le compilateur comme une fonction
inline. Le mot clé inline n’est pas utilisé dans ce cas.
Exemple :
A . initialiser (5 ,7);
Le compilateur crée en fait une fonction initialiser à 3 paramètres :
initialiser (A ,5 ,7);
Remarque :
Même si le constructeur ne retourne aucune valeur, il est déclaré
et défini sans le mot clé void .
class Point
{ public :
void afficher ();
void deplacer ( int , int );
Point ( int , int ); // Constructeur
private :
int abs ;
int ord ;
};
Dans cet exemple, la définition du constructeur sera de la forme :
Point :: Point ( int x , int y )
{
abs = x ;
ord = y ;
}
Prof. Mustapha Ameur C++ & POO
Programmation Orientée Objets - classes
Remarque :
Si on ne définit pas de constructeur, le compilateur générera un
constructeur par défaut. Mais il faut faire attention si on a des
attributs pointeurs dans la classe (allocation mémoire).
class Point
{ public :
void afficher ();
void deplacer ( int , int );
Point ( int , int ); // Constructeur
~ Point ( ); // destructeur
private :
int abs ;
int ord ;
};
Dans cet exemple, la définition du constructeur sera de la forme :
Point ::~ Point ( )
{
cout < < " destruction � d ’ un � Point " << endl ;
}
Prof. Mustapha Ameur C++ & POO