Classes et objets C ++

Le but principal de la programmation C ++ est d'ajouter une orientation objet au langage de programmation C et les classes sont la caractéristique centrale de C ++ qui prend en charge la programmation orientée objet et sont souvent appelées types définis par l'utilisateur.

Une classe est utilisée pour spécifier la forme d'un objet et combine la représentation des données et les méthodes de manipulation de ces données dans un package soigné. Les données et les fonctions d'une classe sont appelées membres de la classe.

Définitions de classe C ++

Lorsque vous définissez une classe, vous définissez un plan pour un type de données. Cela ne définit en fait aucune donnée, mais définit ce que signifie le nom de la classe, c'est-à-dire en quoi consistera un objet de la classe et quelles opérations peuvent être effectuées sur un tel objet.

Une définition de classe commence par le mot-clé classsuivi du nom de la classe; et le corps de la classe, entouré par une paire d'accolades. Une définition de classe doit être suivie d'un point-virgule ou d'une liste de déclarations. Par exemple, nous avons défini le type de données Box à l'aide du mot-cléclass comme suit -

class Box {
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

Le mot clé publicdétermine les attributs d'accès des membres de la classe qui la suit. Un membre public est accessible depuis l'extérieur de la classe n'importe où dans la portée de l'objet de classe. Vous pouvez également spécifier les membres d'une classe commeprivate ou protected dont nous discuterons dans une sous-section.

Définir des objets C ++

Une classe fournit les plans pour les objets, donc fondamentalement un objet est créé à partir d'une classe. Nous déclarons les objets d'une classe avec exactement le même type de déclaration que nous déclarons des variables de types de base. Les instructions suivantes déclarent deux objets de la classe Box -

Box Box1;          // Declare Box1 of type Box
Box Box2;          // Declare Box2 of type Box

Les deux objets Box1 et Box2 auront leur propre copie des données membres.

Accès aux données membres

Les membres de données publiques des objets d'une classe sont accessibles à l'aide de l'opérateur d'accès direct aux membres (.). Essayons l'exemple suivant pour clarifier les choses -

#include <iostream>

using namespace std;

class Box {
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

int main() {
   Box Box1;        // Declare Box1 of type Box
   Box Box2;        // Declare Box2 of type Box
   double volume = 0.0;     // Store the volume of a box here
 
   // box 1 specification
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 specification
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;
   
   // volume of box 1
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Volume of Box1 : " << volume <<endl;

   // volume of box 2
   volume = Box2.height * Box2.length * Box2.breadth;
   cout << "Volume of Box2 : " << volume <<endl;
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Volume of Box1 : 210
Volume of Box2 : 1560

Il est important de noter que les membres privés et 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.

Classes et objets en détail

Jusqu'à présent, vous avez une idée très basique des classes et des objets C ++. Il existe d'autres concepts intéressants liés aux classes et objets C ++ que nous discuterons dans diverses sous-sections répertoriées ci-dessous -

Sr.Non Concept et description
1 Fonctions des membres de classe

Une fonction membre d'une classe est une fonction qui a sa définition ou son prototype dans la définition de classe comme toute autre variable.

2 Modificateurs d'accès aux classes

Un membre de classe peut être défini comme public, privé ou protégé. Par défaut, les membres seraient considérés comme privés.

3 Constructeur et destructeur

Un constructeur de classe est une fonction spéciale dans une classe qui est appelée lorsqu'un nouvel objet de la classe est créé. Un destructeur est également une fonction spéciale qui est appelée lorsque l'objet créé est supprimé.

4 Copier le constructeur

Le constructeur de copie est un constructeur qui crée un objet en l'initialisant avec un objet de la même classe, qui a été créé précédemment.

5 Fonctions d'ami

UNE friend function est autorisé à accéder pleinement aux membres privés et protégés d'une classe.

6 Fonctions en ligne

Avec une fonction en ligne, le compilateur essaie de développer le code dans le corps de la fonction à la place d'un appel à la fonction.

sept ce pointeur

Chaque objet a un pointeur spécial this qui pointe vers l'objet lui-même.

8 Pointeur vers les classes C ++

Un pointeur vers une classe se fait exactement de la même manière qu'un pointeur vers une structure. En fait, une classe n'est en réalité qu'une structure contenant des fonctions.

9 Membres statiques d'une classe

Les membres de données et les membres de fonction d'une classe peuvent être déclarés comme statiques.