zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    .Net Cache及(HttpRuntime.Cache与HttpContext.Current.Cache的区别)
    Autofac 属性注入的方式
    AutoFac创建实例的方法解析
    MongoDB 增删改查 CRUD 操作
    MongoDB 3.4版本在windows环境下的安装与配置
    Stack Overflow 2017 开发者调查报告
    使用SVN对GitHub进行版本管理
    MongoDB.Driver for C#
    Dapper.Net 轻量级的ORM 框架2
    Selenium webdriver 安装(一)
  • 原文地址:https://www.cnblogs.com/lemaden/p/10238025.html
Copyright © 2011-2022 走看看