Classes et objets en C++

25 Sep 2019 25 Sep 2019 12047 vues ESSADDOUKI Mostafa 3 min de lecture
Introduction et syntaxe de base
1 Introduction au langage C++ 2 Entrée-sortie en C++ - cin et cout 3 Inférence de type avec le mot-clé auto en C++ 4 Classe std::string et les chaînes de caractères en C++ 5 Les structures conditionnelles (if et switch) en C++ (C++17 et C++20) 6 Les boucles en C++ (C++17 et C++20) 7 La gestion des fichiers en C++
Pointeurs et fonctions
8 Introduction aux pointeurs en C++ - Déclaration et interêts 9 Les références en C++ - déclaration et interêts 10 Les tableaux en C++ - Déclaration et interêts 11 Introduction aux fonctions en C++ 12 Passer des arguments à une fonction en C++ 13 Déclarer un paramètre const en C++ 14 Les fonctions Lambda en C++ 15 Fonctions utiles (Mathématiques et caractères) en C++
Programmation OO
16 Classes et objets en C++ 17 Spécificateurs d'accès en C++ 18 Constructeurs et destructeur d'une classe en C++ 19 Fonctions membres en C++ 20 Membres statiques d'une classe en C++ 21 Fonctions en ligne en C++ - inline 22 Fonctions et classes amies en C++ - friend 23 Surcharge des fonctions en C++ 24 Surcharge des opérateurs en C++ 25 Héritage en C++ 26 La gestion d'exceptions en C++ : déclaration, utilisation et personnalisation 27 fonctions et classes templates en C++ 28 Les nouveautés C++20 pour améliorer les templates en C++
Structures de données
29 Introduction aux structures de données 30 Les structures en C++ et la différence avec les structures en C 31 Les listes chaînées en C++ 32 Les piles en C++ 33 File d'attente en C++ 34 Arbre binaire de recherche : définition et mise en oeuvre en C++
La bibliothèque standard (STL)
35 Introduction à la bibliothèque de Template Standard STL 36 Les itérateurs en C++ - définition, déclaration et exemples 37 La classe array en C++ (bibliothèque STL) <array> 38 La classe vector de la bibliothèque STL <vector> 39 La classe deque en C++ ( Bibliothèque STL) 40 La classe list en C++ (bibliothèque STL) <list> 41 La classe stack (Pile) en C++ (bibliothèque STL) <stack> 42 La classe queue (File d'attente) en C++ (bibliothèque STL) <queue> 43 La file d'attente prioritaire (classe priority_queue) - Bibliothèque STL 44 Les ensembles en C++ (Classe set <set> - Bibliothèque STL) 45 Les dictionnaires en C++ : Classe map (Bibliothèque STL) 46 Introduction aux algorithmes de la bibliothèque STL (programmation compétitive) 47 Tri et méthodes associées en C++ - Bibliothèque STL 48 Recherche dichotomique et méthodes associées en C++ - Bibliothèque STL 49 Appliquer un prédicat ou une fonction aux éléments d'une séquence en C++ - Bibliothèque STL 50 Recherche dans une séquence et méthodes associées en C++ - Bibliothèque STL

En Programmation Orientée Objet (POO), le développement est centré sur la création de classes. Une classe est un modèle (gabarit) qui décrit à la fois les données (attributs) et les comportements (méthodes) d'une entité du monde réel.

Classe Une classe est un type de données défini par l'utilisateur qui regroupe des données membres (attributs) et des fonctions membres (méthodes). Elle définit la structure et le comportement communs à tous ses objets.
Analogie Pensez à la classe Voiture comme au plan de construction d'une voiture : le plan définit les caractéristiques (nombre de roues, vitesse max…), mais ce n'est pas une voiture réelle. Les objets sont les voitures concrètes fabriquées à partir de ce plan.

Définition d'une classe

Une classe se définit avec le mot-clé class, suivi du nom de la classe et de son corps entre accolades. La définition se termine obligatoirement par un point-virgule.

   
Syntaxe C++
class NomClasse {
    spécificateur_accès:   // public, private ou protected
        type attribut;
        // ...
        type_retour méthode();
};

  Exemple — classe Voiture

class Voiture {
private:
    int    NB_roues;
    double vitesse;
    int    kilometrage;

public:
    int  Id;
    void rouler() {}
};
Convention courante En pratique, on place les données dans private (protection) et les méthodes dans public (interface accessible). Les spécificateurs d'accès seront détaillés dans le cours suivant.

Créer des objets

Définir une classe ne crée aucune donnée en mémoire. Pour utiliser une classe, il faut instancier des objets. Chaque objet possède sa propre copie des données membres.

   
Syntaxe C++
NomClasse nomObjet;
NomClasse obj1, obj2; // plusieurs objets

  Exemple

Voiture v1, v2; // v1 et v2 ont chacun leur propre copie de Id, vitesse...

Accéder aux membres

On accède aux membres publics d'un objet via l'opérateur point .. Les membres privés et protégés ne sont pas accessibles directement depuis l'extérieur de la classe.

  Exemple complet

#include <iostream>
using namespace std;

class Voiture {
private:
    int    NB_roues;
    double vitesse;
    int    kilometrage;

public:
    int Id;
    void rouler() {
        cout << "Voiture " << Id << " est en route." << endl;
    }
};

int main()
{
    Voiture v1, v2;
    v1.Id = 1;   // accès au membre public
    v2.Id = 2;
    v1.rouler();
    v2.rouler();
    return 0;
}
Sortie
Voiture 1 est en route.
Voiture 2 est en route.
Accès aux membres privés Il est impossible d'accéder directement aux membres private ou protected avec l'opérateur . depuis l'extérieur de la classe. On passera par des méthodes accesseurs (getters/setters) présentées dans les cours suivants.

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.