深刻复制 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. 运行结果:  
  46. /*
     *Copyright(c)2016,烟台大学计算机与控制工程学院
     *All rights reserved
     *文件名称:123.cpp
     *作    者:王蕊
     *完成日期:2016年4月24日
     *版 本 号:v1.0
     *
     *问题描述:阅读程序,补足未完成的注释
     *输入描述:
     *程序输出:
    */
    #include<iostream>  
    #include<cstring>  
    using namespace std;  
    class A  
    {  
    private:  
        char *a;  
    public:  
        A(char *aa)  
        {  
            a = new char[strlen(aa)+1];  //这样处理的意义在于可以节省了许多系统单元,不会浪费内存空间。  
            strcpy(a, aa);  //数据成员a与形式参数aa的关系是a与aa同为指针数组,系统分配的内存空间相同  
        }  
        A(A &b)  
            {  
                a=new char[strlen(b.a)+1];  
                strcpy(a,b.a);  
            }  
        ~A()  
        {  
            delete []a;   //这样处理的意义在于可以释放指针所指向的内存空间,否则会导致动态分配的内存  
                         // 无法回收,使得程序所占的内存越来越大  
        }  
        void output() { cout<<a<<endl; }  
    };  
    int main(){  
        A a("good morning, code monkeys!");  
        a.output();  
        A b(a);  
        b.output();  
        return 0;  
    } 
    运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值