码迷,mamicode.com
首页 > 其他好文 > 详细

动态内存分配类实现

时间:2014-05-06 01:05:28      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   class   code   ext   

 
今天学习了C++语言的内存动态分配,并借助所学的知识实现了一个动态内存分配类。

问题的背景为:在已经实现了一个点类的基础上,实现一个动态内存分配类,这个类

的功能为:实现根据输入的数目size,动态的生成size个点类对象;并在提供一个借口

可以对pos位置的对象进行操作;在对象生存期结束时,可以自动释放分配的内存空间。

根据描述的问题描述的需求,规划了如下的类图:

bubuko.com,布布扣

 

写出了一个包含三个方法的对点动态分配内存的类:

   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:   

动态内存分配类实现,布布扣,bubuko.com

动态内存分配类实现

标签:des   style   blog   class   code   ext   

原文地址:http://www.cnblogs.com/hellowolrd-dc/p/3700006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!