Aide-mémoire C++/UML

Principes de base

Définition

En programmation orientée objet, une classe est un modèle qui définit les variables (→ les attributs) et les fonctions (→ les méthodes) communes à tous les objets d’un certain type.

Pour définir une classe en C++, il faut :

  1. la déclarer dans un fichier d’entête avec l’extension .h

  2. implémenter ses méthodes (c-à-d coder en C++ ses méthodes) dans un fichier avec l’extension .cpp

Ainsi, si on considère la classe suivante :

simple class

Sa déclaration sera :

myclass.h
class MyClass {
  public:
    MyClass(); // Constructeur
    ~MyClass(); // Destructeur
    int aPublicAttribut;
    int aPublicMethod(int arg1, char * arg2);
  protected:
    float aProtectedAttribut;
    int aProtectedMethod(double& arg1);
  private:
    double _aPrivateAttribut; (1)
    int _aPrivateMethod(); (1)
}; (2)
1 une convention de nommage répandue consiste à préfixer le nom des membres privés d’une classe avec ‘_’
2 ne pas oublier le ‘;’

Son implémentation ressemblera à :

myclass.cpp
MyClass::MyClass() {
 _aPrivateAttribut = 0;

  // instructions
  // ...
}

MyClass::~MyClass() {
  // instructions
  // ...
}

int MyClass::aPublicMethod(int arg1, char * arg2) {
  // instructions
  // ...
}

int MyClass::aProtectedMethod(double& arg1) {
  // instructions
  // ...
}

int MyClass::_aPrivateMethod() {
  // instructions
  // ...
}

Pour utiliser cette classe dans une application, il faut l'instancier c-à-d créer un objet à partir de cette classe.

myapp.cpp
#include "MyClass.h"

int main() {
  MyClass anInstance; (1)
  MyClass * anotherInstance = new MyClass(); (2)

  anInstance.aPublicMethod(0, "hello"); (3)

  anotherInstance->aPublicMethod(1, "bye!"); (4)

  return
}
1 instanciation statiqueanInstance est un objet
2 instanciation dynamiqueanotherInstance est un pointeur sur un objet
3 Appel de la méthode publique de la classe depuis un objet ⇒ notation “pointée”
4 Appel de la méthode publique de la classe depuis un pointeur d’objet ⇒ notation “fléchée”

🞄  🞄  🞄