//创建对象数组
#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.
本文介绍使用C++创建动态数组的方法,并演示了如何利用类实现动态数组的管理,包括数组的创建、元素操作及资源释放过程。
1550

被折叠的 条评论
为什么被折叠?



