Pointeur vers les classes C ++

Un pointeur vers une classe C ++ se fait exactement de la même manière qu'un pointeur vers une structure et pour accéder aux membres d'un pointeur vers une classe, vous utilisez l'opérateur d'accès aux membres ->opérateur, comme vous le faites avec les pointeurs vers les structures. De même, comme pour tous les pointeurs, vous devez initialiser le pointeur avant de l'utiliser.

Essayons l'exemple suivant pour comprendre le concept de pointeur vers une classe -

#include <iostream>
 
using namespace std;

class Box {
   public:
      // Constructor definition
      Box(double l = 2.0, double b = 2.0, double h = 2.0) {
         cout <<"Constructor called." << endl;
         length = l;
         breadth = b;
         height = h;
      }
      double Volume() {
         return length * breadth * height;
      }
      
   private:
      double length;     // Length of a box
      double breadth;    // Breadth of a box
      double height;     // Height of a box
};

int main(void) {
   Box Box1(3.3, 1.2, 1.5);    // Declare box1
   Box Box2(8.5, 6.0, 2.0);    // Declare box2
   Box *ptrBox;                // Declare pointer to a class.

   // Save the address of first object
   ptrBox = &Box1;

   // Now try to access a member using member access operator
   cout << "Volume of Box1: " << ptrBox->Volume() << endl;

   // Save the address of second object
   ptrBox = &Box2;

   // Now try to access a member using member access operator
   cout << "Volume of Box2: " << ptrBox->Volume() << endl;
  
   return 0;
}

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

Constructor called.
Constructor called.
Volume of Box1: 5.94
Volume of Box2: 102