C++ Classes et objets

C++ ajoute la programmation orientée objet sur la base du C. C++ prend en charge la programmation orientée objet. Les classes sont une caractéristique essentielle de C++ et sont souvent appelées types définis par l'utilisateur.

Les classes sont utilisées pour spécifier la forme des objets. Ce sont des types de données définis par l'utilisateur qui encapsulent une combinaison de données et de fonctions. Les données d'une classe sont appelées variables membres, et les fonctions sont appelées fonctions membres. Une classe peut être considérée comme un modèle qui peut être utilisé pour créer plusieurs objets ayant les mêmes propriétés et comportements.

Définition de classe C++

Pour définir une classe, vous devez utiliser le mot-cléclassEnsuite, spécifiez le nom de la classe, et le corps de la classe est placé entre une paire d'accolades. Le corps contient les variables membres et les fonctions membres de la classe.

Définir une classe revient essentiellement à définir un plan pour un type de données. Il définit ce que les objets de la classe incluent et quelles opérations peuvent être effectuées sur cet objet.

Dans l'exemple suivant, nous utilisons le mot-cléclasspour définir le type de données Box, contenant trois variables membres : length, breadth et height :

class Box { public: double length; // Longueur de la boîte double breadth; // Largeur de la boîte double height; // Hauteur de la boîte };

Mots-cléspublicIl détermine les attributs d'accès des membres de la classe. Dans la portée d'un objet de classe, les membres publics sont accessibles depuis l'extérieur de la classe. Vous pouvez également spécifier des membres de classe comme...privateouprotected, que nous expliquerons plus tard.

Définition d'objets C++

Les classes fournissent le modèle des objets ; ainsi, fondamentalement, les objets sont créés à partir des classes. Déclarer un objet d'une classe revient à déclarer une variable d'un type de base. Les instructions suivantes déclarent deux objets de la classe Box :

Box Box1; // Déclarer Box1 de type Box Box Box2; // Déclarer Box2 de type Box

Les objets Box1 et Box2 ont chacun leurs propres membres de données.

accéder aux membres de données

Les membres de données publics d'un objet de classe sont accessibles à l'aide de l'opérateur d'accès direct aux membres..pour accéder.

Pour mieux comprendre ces concepts, essayons l'exemple suivant :

Exemple

#include <iostream> using namespace std; class Box { public: double length; // Longueur double breadth; // Largeur double height; // Hauteur // Déclaration de fonction membre double get(void); void set( double len, double bre, double hei ); }; // Définition de fonction membre double Box::get(void) { return length * breadth * height; } void Box::set( double len, double bre, double hei) { length = len; breadth = bre; height = hei; } int main( ) { Box Box1; // Déclarer Box1 de type Box Box Box2; // Déclarer Box2 de type Box Box Box3; // Déclarer Box3 de type Box double volume = 0.0; // Utilisé pour stocker le volume // Détails de la boîte 1 Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; // Détails de la boîte 2 Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0; // Volume de la boîte 1 volume = Box1.height * Box1.length * Box1.breadth; cout << "Volume de Box1 :" << volume <<endl; // Volume de la boîte 2 volume = Box2.height * Box2.length * Box2.breadth; cout << "Volume de Box2 :" << volume <<endl; // Détails de Box 3 Box3.set(16.0, 8.0, 12.0); volume = Box3.get(); cout << "Volume de Box3:" << volume <<endl; return 0; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

Box1 的体积:210
Box2 的体积:1560
Box3 的体积:1536

Il convient de noter que les membres privés et les membres protégés ne sont pas accessibles directement à l'aide de l'opérateur d'accès direct aux membres (.). Nous apprendrons comment accéder aux membres privés et protégés dans des tutoriels ultérieurs.

Détails sur les classes et les objets

Jusqu'à présent, nous avons acquis une compréhension de base des classes et des objets C++. La liste suivante inclut également d'autres concepts liés aux classes et aux objets C++, et vous pouvez cliquer sur les liens correspondants pour en savoir plus.

ConceptsDescription
Fonctions membres de classeLes fonctions membres d'une classe sont celles dont les définitions et les prototypes sont écrits à l'intérieur de la définition de la classe, tout comme les autres variables de la définition de la classe.
Modificateurs d'accès des classesLes membres de classe peuvent être définis comme public, private ou protected. Par défaut, ils sont définis comme private.
Constructeurs et destructeursUn constructeur de classe est une fonction spéciale qui est appelée lorsqu'un nouvel objet est créé. Un destructeur de classe est aussi une fonction spéciale qui est appelée lorsque l'objet créé est détruit.
Constructeur de copie C++Un constructeur de copie est un constructeur spécial qui, lors de la création d'un objet, utilise un objet précédemment créé de la même classe pour initialiser l'objet nouvellement créé.
Fonctions amies en C++Fonctions amiesPeuvent accéder aux membres privés et protégés d'une classe.
Fonctions inline en C++Avec les fonctions inline, le compilateur tente de développer le code du corps de la fonction à l'endroit où la fonction est appelée.
Le pointeur this en C++Chaque objet possède un pointeur spécialthis, qui pointe vers l'objet lui-même.
Pointeur vers une classe en C++Les pointeurs vers des classes s'utilisent de la même manière que les pointeurs vers des structures. En fait, une classe peut être considérée comme une structure avec des fonctions.
Membres statiques d'une classe en C++Les membres de données et les fonctions membres d'une classe peuvent être déclarés statiques.
autres extensions