欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++ 动态数组类的创建和简单运用

程序员文章站 2022-07-15 08:40:01
...
#include<iostream>
#include<cassert>

using namespace std;

class Point{
public:
Point(int x,int y):x(x),y(y){
	cout<<"调用构造函数"<<endl;
}
Point():x(0),y(0){
	cout<<"调用默认构造函数"<<endl; 
}
~Point(){
	cout << "调用析构函数"<<endl; 
} 
int getx() const{return x;}
int gety() const{return y;}
void move(int newx, int newy){
	x = newx;
	y = newy;
} 
private:
	int x,y;
};

class ArrayOfPoints{ //动态数组类 
public:
	ArrayOfPoints(int size):size(size){ //构造函数中用动态类存分配的方式,按照初始值size指定的元素个数 分配内存空间 
		points =  new Point[size]; 
	}
	~ArrayOfPoints(){//释放points 内存 
		cout<< "释放....."<<endl;
		delete []points; 
	}
	Point& element(int index){//访问数组元素的方法 
		assert(index >= 0 && index < size);//下标范围 不能越界 
		return points[index]; //返回素组元素 
	}  
private:
	int size;//数组的大小
	Point *points; //指向动态数组首地址 
};

int main(){
int count;
cout<<"请输入点的个数"<<endl;
cin>>count;
ArrayOfPoints points(count);//创建数组对象 
points.element(0).move(5,0);//访问数据元素的成员
points.element(1).move(15,20);//访问数据元素的成员 
return 0;
}