• 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.

  • 相关阅读:
    HDU dp递推 母牛的故事 *
    自制权限框架(二)注解
    自制权限框架(二)注解
    自制权限框架(二)注解
    自制权限框架(二)注解
    iOS Sprite Kit教程之申请和下载证书
    iOS Sprite Kit教程之申请和下载证书
    iOS Sprite Kit教程之申请和下载证书
    白领创业做起了小龙虾的生意,如今公司日销售额达30万元
    她将小镇上的童装生意做到了线上,这位夫妻因此获得了大丰收
  • 原文地址:https://www.cnblogs.com/lemaden/p/10238025.html
Copyright © 2020-2023  润新知