Structure & Classes
Notion de classe
- Langage objet : analyse du problème en termes de nature et de structure des données ≠ programmation impérative (en C ou fortran) qui relève plus de l’aglorithmie
- Une classe est
- une généralisation de la notion de type (
int
,double
,…) - une association de données membres et d'opérations s'y rapportant (méthodes ou fonctions membres)
- une généralisation de la notion de type (
Déclaration de classe
Classe → généralisation de la notion de type (
int
,double
,…)class particule { // Déclaration de données membres double m_masse; double m_charge; ... };
\ding{42} Ne pas oublier le point virgule à la fin de la déclaration
Déclaration de classe
Classe → généralisation de la notion de type (
int
,double
,…)class particule { // Déclaration de données membres double m_masse; double m_charge; ... }; ... // Instanciation d'objets de type particule particule my_electron, my_proton;
Accès aux membres de la classe en C++
Classe → association de données membres et de méthodes (fonctions membres)
class particule { // Déclaration de données membres double m_masse; double m_charge; // Déclaration des méthodes void initialise(const double masse_, const double charge_); void affiche() const; };
Définition de méthodes de classes
Identique à la définition d’une fonction mais préfixée du nom de la classe et de l’opérateur de portée
::
class particule { // Déclaration de données membres double m_masse; double m_charge; // Déclaration des méthodes void initialise(const double masse_, const double charge_); void affiche() const; }; void particule::initialise(const double masse_, const double charge_) { m_masse = masse_; m_charge = charge_; } ...
Exemple d’utilisation de la classe particule
#include "particule.h" int main() { // Instanciation d'objets de type particule particule my_electron, my_proton; // Accès aux données membres my_electron.initialise(0.511, -1.6e-19); my_proton.initialise(938.0, +1.6e-19); }
Exemple d’utilisation de la classe particule
#include "particule.h" int main() { // Instanciation d'objets de type particule particule * ptr_electron = new particule; particule * ptr_proton = new particule; // Accès aux données membres ptr_electron->initialise(0.511, -1.6e-19); ptr_proton->initialise(938.0, +1.6e-19); ... delete ptr_electron; delete ptr_proton; }
Annexes
Accès aux membres d’une structure
L’accès aux membres se fait par l’intermédiaire de l’opérateur point
.
struct particule { // Déclaration de données membres double m_masse; double m_charge; ... }; // Instanciation d'objet de type particule particule my_electron, my_proton; // Accès aux données membres my_electron.m_masse = 0.511; my_proton.m_charge = -1.6e-19;