指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。本文主要介绍C++中指向类对象的指针。

C++ 指向对象的指针

创建对像时,编译系统会为每一个对像分配一定的存储空间,以存放其成员,对象空间的起始地址就是

对象的指针。可以定义一个指针变量,用来存和对象的指针。

例如,

#include <iostream>
using namespace std;
class Area
{
   public:
      // 构造函数定义
      Area(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 Area
      double breadth;    // Breadth of a Area
      double height;     // Height of a Area
};
int main(void)
{
   Area Area1(3.3, 1.2, 1.5);    // Declare Area1
   Area Area2(8.5, 6.0, 2.0);    // Declare Area2
   Area *ptrArea;                // Declare pointer to a class.
   // 保存第一个对象的地址
   ptrArea = &Area1;
   // 现在尝试使用成员访问运算符来访问成员
   cout << "Volume of Area1: " << ptrArea->Volume() << endl;
   // 保存第二个对象的地址
   ptrArea = &Area2;
   // 现在尝试使用成员访问运算符来访问成员
   cout << "Volume of Area2: " << ptrArea->Volume() << endl;
  
   return 0;
}

推荐文档