Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Classes et objets C++

Classes et objets C++

Dans ce tutoriel, nous allons découvrir les objets et les classes et comment les utiliser en C++ à l'aide d'exemples.

Dans les tutoriels précédents, nous avons appris les fonctions et les variables. Parfois, il est souhaitable de regrouper les fonctions et les données associées au même endroit afin qu'elles soient logiques et plus faciles à utiliser.

Supposons que nous ayons besoin de stocker la longueur, la largeur et la hauteur d'une pièce rectangulaire et de 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 en savoir plus sur les classes .

Classe C++

Une classe est un modèle pour l'objet.

Nous pouvons 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 à l'intérieur des 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és à l'intérieur de la classe sont appelés 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éfinie 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 salle2 du Room la classe est créée en sampleFunction() . De même, les objets room3 et room4 sont créés en 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 au sein de 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 le calculateArea() fonction à l'intérieur du Room classe pour l'objet room2 .

De même, les membres de données sont accessibles en tant que :

room1.length = 5.5;

Dans ce cas, il initialise la longueur variable de room1 à 5.5 .

Exemple 1 :Objet et classe en programmation C++

// Program to illustrate the working of
// objects and class in C++ Programming

#include <iostream>
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;
}

Sortie

Area of Room =  1309
Volume of Room =  25132.8

Dans ce programme, nous avons utilisé le Room classe et son objet room1 pour calculer la surface et le volume d'une pièce.

En 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ù depuis le programme.

Selon nos besoins, nous pouvons également créer des membres privés en utilisant le 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() { }
}

Ici, un et function1() sont privés. Ils ne sont donc pas accessibles depuis l'extérieur de la classe.

D'autre part, b et function2() sont accessibles de partout dans le programme.

Pour en savoir plus sur les mots-clés publics et privés, veuillez consulter notre didacticiel sur les modificateurs d'accès aux classes C++.

Exemple 2 :Utilisation de public et private dans une classe C++

// Program to illustrate the working of
// public and private in C++ Class

#include <iostream>
using namespace std;

class Room {

   private:
    double length;
    double breadth;
    double height;

   public:

    // function to initialize private variables
    void initData(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.initData(42.5, 30.8, 19.2);

    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

Sortie

Area of Room =  1309
Volume of Room =  25132.8

L'exemple ci-dessus est presque identique au premier exemple, sauf que les variables de classe sont maintenant 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;

À la place, nous utilisons la fonction publique initData() d'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 renvoyer un objet depuis une fonction ?

Langue C

  1. Classe et objet C#
  2. Classe abstraite et méthode C#
  3. Classe partielle C# et méthode partielle
  4. Classe et méthode scellées C#
  5. Fonction amie C++ et classes amies
  6. Modèles de classe C++
  7. Classe et objets Java
  8. Structures et classes en C++
  9. Différence entre structure et classe :expliquée avec un exemple C++