天天看點

C++——動态記憶體配置設定2-建立對象數組

//建立對象數組

#include<iostream>

using namespace std;

class Point

{ public:

       Point()

      {   X=Y=0;     cout<<"Default Constructor called."<<endl;     }

       Point(int xx,int yy)

      {   X=xx;     Y=yy;     cout<< "Constructor called."<<endl;     }

       ~Point()

      {   cout<<"Destructor called."<<endl;    }

       int GetX() {return X;}

       int GetY() {return Y;}

          void Move(int x,int y)

                   {  X=x;  Y=y;   }

  private:

       int  X,Y;

};

int main()

{

     Point *Ptr=new Point[2];    //建立對象數組

     Ptr[0].Move(5,10);     //通過指針通路數組元素的成員

     Ptr[1].Move(15,20);   //通過指針通路數組元素的成員

     cout<<"Deleting..."<<endl;

     delete[ ] Ptr;               //删除整個對象數組

}//運作結果:

Default Constructor called.

Default Constructor called.

Deleting...

Destructor called.

Destructor called.

//動态數組類,不需要預先設計好數組的大小

#include<iostream>

using namespace std;

class Point

{ public:

       Point()

      {   X=Y=0;     cout<<"Default Constructor called."<<endl;     }

       Point(int xx,int yy)

      {   X=xx;     Y=yy;     cout<< "Constructor called."<<endl;     }

       ~Point()

      {   cout<<"Destructor called."<<endl;    }

       int GetX() {return X;}

       int GetY() {return Y;}

          void Move(int x,int y)

                   {  X=x;  Y=y;   }

  private:

       int  X,Y;

};

class ArrayOfPoints

{

   public:

     ArrayOfPoints(int n)//根據實際來調整數組大小

     {   numberOfPoints=n;  points=new Point[n];  }

     ~ArrayOfPoints()//

     {   cout<<"Deleting..."<<endl;

         numberOfPoints=0;  delete[] points;     }

     Point& Element(int n)//傳回所需要的元素

     {  return points[n];  }

   private:

     Point *points;

     int numberOfPoints;

};

int main()

{

         int number;

         cout<<"Please enter the number of points:";

         cin>>number;

     ArrayOfPoints points(number);    //建立對象數組

     points.Element(0).Move(5,10);     //通過指針通路數組元素的成員

     points.Element(1).Move(15,20);   //通過指針通路數組元素的成員

}

//運作結果如下:

Please enter the number of points:2

Default Constructor called.

Default Constructor called.

Deleting...

Destructor called.

Destructor called.

轉載于:https://www.cnblogs.com/lemaden/p/10238025.html