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 : la déclarer dans un fichier d’entête avec l’extension .h 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 : 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 statique ⇒ anInstance est un objet 2 instanciation dynamique ⇒ anotherInstance 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” 🞄 🞄 🞄 La suite d’outils GCC Opérateurs bit à bit en C/C++