Intro :
Le langage C++ est le langage le plus utilisé dans le monde du développement de jeu-vidéo.
Ce petit tutoriel à pour but de vous faire réviser certaines notions de C++.
Prérequis :
– Avoir quelques notions de C++
Explications :
Le C++ est un langage orienté objet. C’est-à-dire que l’on manipule des objets en déclarant des classes au sein du code.
Qu’est-ce qu’une déclaration de fonction / classe ?
Une déclaration indique l’identificateur d’une variable et sa nature (c’est-à-dire respectivement son nom et sa nature).
Qu’est-ce qu’une définition de fonction / classe ?
Une définition implémente la structure d’une fonction ou d’une classe afin de pouvoir l’utiliser.
Commentaires :
|
1 2 3 4 |
/* Ceci est un commentaire sur plusieurs lignes */ // Ceci est un commentaire en une seule ligne |
Qu’est-ce qu’une classe ?
Une classe permet de regrouper dans une même entité des données et des fonctions membres (appelées aussi méthodes) permettant de manipuler ces données.
Créer un objet à partir d’une classe :
Les opérateurs new et delete permettent de créer un objet en allouant sa quantité de mémoire.
A chaque new doit correspondre un delete, sinon il risque d’avoir une fuite de mémoire (memory leak) !
L’opérateur delete appelle le constructeur à détruire de la classe.
Qu’est-ce qu’un objet ?
Un objet est l’instance d’une certaine classe.
L’héritage :
En C++, les classes peuvent hériter d’autres classes et la relation d’héritage est exprimée à l’aide de l’opérateur de dérivation « : ».
|
1 2 3 4 5 |
class Chat : public Animal { public: private: }; |
L’encapsulation :
|
1 2 3 4 5 6 7 8 9 10 11 |
class Sprite2D { public: Sprite2D(); virtual ~Sprite2D(); protected: private: int m_iVariable; }; |
– les déclarations en dessous de « public: » seront accessibles depuis n’importe quelle fonction.
– en dessous de « protected: » : pareil que private mais accessible depuis les classes
filles.
– en dessous de « private: » : accessible que depuis les fonctions de la classes.
L’opérateur sizeof :
Sert à calculer la taille de n’importe quel type de données.
On note que sizeof(char) = 1.
sizeof(x) = 1 ssi x est un byte. (Un byte est la plus petite unité adressable d’un ordinateur)
Opérateurs d’entrées-sorties :
On peut écrire dans la console avec l’instruction suivante :
|
1 2 3 |
#include <iostream> std::cout << "Une phrase." << std:endl; |
On peut écrire du code UTF-8 aussi :
|
1 2 3 |
#include <iostream> std::wcout << "Une phrase en français." << std:endl; |
Les pointeurs :
Un pointeur désigne une adresse d’une variable d’un certain type.
|
1 2 3 4 5 6 7 |
int* pEntier; // Déclare un pointeur de type int int iEntier; &iEntier // permet d'obtenir l'adresse de iEntier pEntier = &iEntier; // Affectation du pointeur |
Le références :
Une référence peut être vue comme un alias d’une variable. C’est un « synonyme » d’une autre variable. Une modification de l’une modifiera l’autre.
|
1 2 |
int i = 3; int& i; // Un référence à la variable i |
Valeur par défaut des paramètres d’une fonction :
|
1 2 |
// Déclaration d'une fonction à paramètres par défaut void print(long valeur, int base = 10); |
Fonctions inline :
Les fonction inline fonctionnent comme les macros.
Surcharge de fonctions :
Tas et Pile :
Tas :
Pile :
Instanciation d’une classe :
|
1 2 |
Avion avion; // Sur la pile Avion* pAvion = new Avion(); // Sur le tas |
Fonctions membres statiques :
– existent même s’il n’y a aucune instance de classe.
– ne peuvent accéder qu’aux membres statiques de la classe.
Exceptions :
Moyen de gérer les erreurs dans un programme C++.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Throw : // Le mot-clé pour lever une exception. /* Bloc try d'une gestion d'exception */ try { // instructions pouvant déclencher des exceptions // dérivant de std::exception } catch ( const std::exception & e ) { std::cerr << e.what(); } |


