深刻复制 1


  1. /* 
  2.  *Copyright(c)2016,烟台大学计算机与控制工程学院 
  3.  *All rights reserved 
  4.  *文件名称:123.cpp 
  5.  *作    者:隋宗涛 
  6.  *完成日期:2016年5月10日 
  7.  *版 本 号:v1.0 
  8.  * 
  9.  *问题描述:阅读程序,补足未完成的注释 
  10.  *输入描述: 
  11.  *程序输出: 
  12. */  
  13. #include<iostream>    
  14. #include<cstring>    
  15. using namespace std;    
  16. class A    
  17. {    
  18. private:    
  19.     char *a;    
  20. public:    
  21.     A(char *aa)    
  22.     {    
  23.         a = new char[strlen(aa)+1];  //这样处理的意义在于可以节省了许多系统单元,不会浪费内存空间。    
  24.         strcpy(a, aa);  //数据成员a与形式参数aa的关系是a与aa同为指针数组,系统分配的内存空间相同    
  25.     }    
  26.     A(A &b)    
  27.         {    
  28.             a=new char[strlen(b.a)+1];    
  29.             strcpy(a,b.a);    
  30.         }    
  31.     ~A()    
  32.     {    
  33.         delete []a;   //这样处理的意义在于可以释放指针所指向的内存空间,否则会导致动态分配的内存    
  34.                      // 无法回收,使得程序所占的内存越来越大    
  35.     }    
  36.     void output() { cout<<a<<endl; }    
  37. };    
  38. int main(){    
  39.     A a("good morning, code monkeys!");    
  40.     a.output();    
  41.     A b(a);    
  42.     b.output();    
  43.     return 0;    
  44. }   
  45. 运行结果:  

深刻复制 1_第1张图片

你可能感兴趣的:(深刻复制 1)