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

  • 相关阅读:
    SQL性能优化(不断总结)
    字符编码:区位/国标(gb2312、gbk)/机内码/ASCII/ANSI/Big5
    计算机中信息编码
    删除sybase一列报错:The 'select into' database option is not enabled for database.....
    常用Oracle函数(From OTN)
    常用正则
    剖析Windows的消息运行机制 (学习一)
    服务器响应码及解释
    了解注册表结构
    Windows消息大全收藏
  • 原文地址:https://www.cnblogs.com/lemaden/p/10238025.html
Copyright © 2020-2023  润新知