标签:des style blog class code ext
今天学习了C++语言的内存动态分配,并借助所学的知识实现了一个动态内存分配类。
问题的背景为:在已经实现了一个点类的基础上,实现一个动态内存分配类,这个类
的功能为:实现根据输入的数目size,动态的生成size个点类对象;并在提供一个借口
可以对pos位置的对象进行操作;在对象生存期结束时,可以自动释放分配的内存空间。
根据描述的问题描述的需求,规划了如下的类图:
写出了一个包含三个方法的对点动态分配内存的类:
1: #ifndef _ARRAYOFPOINTS_H 2: #define _ARRAYOFPOINTS_H 3: 4: #include<iostream> 5: #include<cassert>6: using namespace std;
7: 8: class points
9: { 10: /*点类的数据成员和函数成员 */11: public:
12: points():x(0),y(0) { } 13: points(int x, int y):x(x),y(y) { }14: ~points() {cout<<"Destructor called!"<<endl;}
15: int getx() const
16: {17: return x;
18: }19: int gety() const
20: {21: return y;
22: } 23: void moveto(int newx, int newy) 24: { 25: x = newx; 26: y = newy; 27: }28: private:
29: int x; 30: int y; 31: };32: class ArrayOfPoints
33: { /*给点对象动态分配内存的类数据成员和函数成员*/34: public:
35: ArrayOfPoints(int size):size(size) //构造函数,动态分配size个点对象内存 36: {37: point = new points[size];
38: } 39: ~ArrayOfPoints() //析构函数,释放分配的内存 40: {41: std::cout<<"deleting..."<<std::endl;
42: delete[] point; 43: } 44: points & elenment(int index) //提供给操作者的接口,可随机操作pos位置的点对象 45: { 46: assert(index>=0 && index<size);47: return point[index];
48: }49: private:
50: int size; 51: points* point; 52: };53: #endif // _ARRAYOFPINTS_H
54: 55: 标签:des style blog class code ext
原文地址:http://www.cnblogs.com/hellowolrd-dc/p/3700006.html