5_23.cpp

来自「c++书籍的源代码」· C++ 代码 · 共 55 行

CPP
55
字号
#include <iostream.h>
#include <iomanip.h>
 class array//动态数组类
{
 public :
  array(int s=5);
  array(array &r);//拷贝构造函数
  void display(void);
  ~array();  //析构函数
 private :
  int size;//数组长度
  int *p;//数组首址
};
 array::array(int s)
{
  size=s;
  p=new int[size];//动态分配空间
  for(int i=0;i<size;i++)
   *(p+i)=i;
  cout<<"创建一个数组"<<endl;
}
 array::array(array &r)
{ 
  size=r.size;
  p=new int[size];//深拷贝
  for(int i=0;i<size;i++)
   *(p+i)=*(r.p+i);
  cout<<"创建一个数组"<<endl;
}
 array::~array()
{
  delete []p;//释放空间
  cout<<"数组被删除"<<endl;
}
 void array::display(void)
{
 for(int i=0;i<size;i++)
  cout<<setw(3)<<*(p+i);
 cout<<endl;
}
 int main( )
{
 array a(3),b(a),*p1,*p2;
 p1=new array(2);//动态对象
 p2=new array[2];//动态对象数组
 a.display();
 b.display();
 p1->display();
 for(int i=0;i<2;i++)
  (p2+i)->display(); 
 delete p1;//释放空间
 delete []p2;
 return(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?