第六周项目1(1)-深复制体验

来源:互联网 发布:英语作文批改软件 编辑:程序博客网 时间:2024/06/05 07:21
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:week6-1-1.cpp *作者:高赞 *完成日期:2015年 4 月 13 日 *版本号:v1.0 * * */#include<iostream>#include<cstring>using namespace std;class A{private:    char *a;public:    A(char *aa)    {        a = new char[strlen(aa)+1];  //(a)这样处理的意义在于:__多加一个用来存放'\0'_结束        strcpy(a, aa);  //(b)数据成员a与形式参数aa的关系:aa复制给a    }    ~A()    {        delete []a;   //(c)这样处理的意义在于: 节省空间    }    void output()    {        cout<<a<<endl;    }};int main(){    A a("good morning, code monkeys!");    a.output();    A b("good afternoon, codes!");    b.output();    return 0;}


 

若将(a)行去掉,因为存的是字符串,由于没有多余的空间来存放'\0',字符串不被认为结束,程序运行会出现错误。

而且a也成为了野指针,存在安全隐患。

0 0