Dans ce didacticiel, nous allons découvrir les objets et les classes et comment les utiliser en C ++ à l'aide d'exemples.
Dans les didacticiels précédents, nous avons découvert les fonctions et les variables. Parfois, il est souhaitable de placer les fonctions et les données associées au même endroit afin que ce soit logique et plus facile à utiliser.
Supposons que nous devions stocker la longueur, la largeur et la hauteur d'une pièce rectangulaire et calculer sa superficie et son volume.
Pour gérer cette tâche, nous pouvons créer trois variables, disons, longueur, largeur et hauteur avec les fonctions calculateArea()
et calculateVolume()
.
Cependant, en C ++, plutôt que de créer des variables et des fonctions distinctes, nous pouvons également regrouper ces données et fonctions associées en un seul endroit (en créant des objets ). Ce paradigme de programmation est connu sous le nom de programmation orientée objet.
Mais avant de pouvoir créer des objets et les utiliser en C ++, nous devons d'abord nous familiariser avec les classes .
Classe C ++
Une classe est un plan pour l'objet.
On peut considérer une classe comme un croquis (prototype) d'une maison. Il contient tous les détails sur les sols, les portes, les fenêtres, etc. Sur la base de ces descriptions, nous construisons la maison. La maison est l'objet.
Créer une classe
Une classe est définie en C ++ à l'aide du mot clé class
suivi du nom de la classe.
Le corps de la classe est défini entre les accolades et terminé par un point-virgule à la fin.
class className ( // some data // some functions );
Par exemple,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Ici, nous avons défini une classe nommée Room
.
Les variables longueur, largeur et hauteur déclarées à l'intérieur de la classe sont appelées membres de données . Et, les fonctions calculateArea()
et calculateVolume()
sont appelées fonctions membres d'une classe.
Objets C ++
Lorsqu'une classe est définie, seule la spécification de l'objet est définie; aucune mémoire ou stockage n'est alloué.
Pour utiliser les données et accéder aux fonctions définies dans la classe, nous devons créer des objets.
Syntaxe pour définir un objet en C ++
className objectVariableName;
Nous pouvons créer des objets de Room
classe (définis dans l'exemple ci-dessus) comme suit:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Ici, deux objets room1 et room2 de la Room
classe sont créés dans sampleFunction()
. De même, les objets room3 et room4 sont créés dans main()
.
Comme nous pouvons le voir, nous pouvons créer des objets d'une classe dans n'importe quelle fonction du programme. Nous pouvons également créer des objets d'une classe dans la classe elle-même, ou dans d'autres classes.
De plus, nous pouvons créer autant d'objets que nous le souhaitons à partir d'une seule classe.
Membres de données d'accès C ++ et fonctions membres
Nous pouvons accéder aux données membres et aux fonctions membres d'une classe en utilisant un .
opérateur (point). Par exemple,
room2.calculateArea();
Cela appellera la calculateArea()
fonction à l'intérieur de la Room
classe pour l'objet room2.
De même, les données membres sont accessibles en tant que:
room1.length = 5.5;
Dans ce cas, il initialise la variable de longueur de room1 à 5.5
.
Exemple 1: objet et classe dans la programmation C ++
// Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Production
Superficie de la pièce = 1309 Volume de la pièce = 25132,8
Dans ce programme, nous avons utilisé la Room
classe et son objet room1 pour calculer la surface et le volume d'une pièce.
Dans main()
, nous avons attribué les valeurs de longueur, largeur et hauteur avec le code:
room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;
Nous avons ensuite appelé les fonctions calculateArea()
et calculateVolume()
pour effectuer les calculs nécessaires.
Notez l'utilisation du mot-clé public
dans le programme. Cela signifie que les membres sont publics et peuvent être consultés n'importe où à partir du programme.
Selon nos besoins, nous pouvons également créer des membres privés à l'aide du private
mot - clé. Les membres privés d'une classe ne sont accessibles qu'à partir de la classe. Par exemple,
class Test ( private:
int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.
Par contre, b et function2()
sont accessibles de partout dans le programme.
Pour en savoir plus sur les mots clés publics et privés, consultez notre didacticiel sur les modificateurs d'accès aux classes C ++.
Exemple 2: Utilisation de public et privé dans la classe C ++
// Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Production
Superficie de la pièce = 1309 Volume de la pièce = 25132,8
L'exemple ci-dessus est presque identique au premier exemple, sauf que les variables de classe sont désormais privées.
Les variables étant désormais privées, nous ne pouvons pas y accéder directement depuis main()
. Par conséquent, l'utilisation du code suivant serait invalide:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Au lieu de cela, nous utilisons la fonction publique getData()
pour initialiser les variables privées via les paramètres de la fonction double len
, double brth
et double hgt
.
Pour en savoir plus sur les objets et les classes, consultez ces rubriques:
- Constructeurs C ++
- Comment passer et retourner un objet depuis une fonction?