c++实践参考:深复制

来源:互联网 发布:摩托车违章查询软件 编辑:程序博客网 时间:2024/05/16 13:02
/* *Copyright(c)2016,烟台大学计算机学院 *All right reserved. *文件名称:test.cpp *作者:黄金婵 *完成日期:2016年6月9日 *版本号:v1.0 * *问题描述:为类A增加复制构造函数,用下面的main函数测试 *输入描述: *程序输出: */#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(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
原创粉丝点击