Cplusplus-cpp-pointer-to-class

提供:Dev Guides
移動先:案内検索

C ++クラスへのポインター

C ++クラスへのポインターは、構造体へのポインターとまったく同じ方法で実行され、構造体へのポインターと同じように、メンバーアクセス演算子*→ *演算子を使用して、クラスへのポインターのメンバーにアクセスします。 また、すべてのポインターと同様に、使用する前にポインターを初期化する必要があります。

クラスへのポインタの概念を理解するために次の例を試してみましょう-

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

上記のコードをコンパイルして実行すると、次の結果が生成されます-

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