第9周项目1:深复制体验(3)

来源:互联网 发布:bs公式 知乎 编辑:程序博客网 时间:2024/06/05 03:20
/* * Copyright(c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:第9周项目1:深复制体验(3) * 作者:于子娴 * 完成日期:2016.4.28 * 版本号:v1.0 * * 问题描述:为类A增加复制构造函数,用下面的main函数测试    int main()    {        A a("good morning, code monkeys!");        a.output();        A b(a);        b.output();        return 0;    } * 输入描述: * 程序输出: */#include<iostream>#include<cstring>using namespace std;class A{private:    char *a;public:    A(char *aa)    {        a = new char[strlen(aa)+1];  //(a)这样处理的意义在于:空间字节数,形参给出的字符串长度再加1,因为要存放'\0'。        strcpy(a, aa);  //(b)数据成员a与形式参数aa的关系:数据成员a与形式参数aa共用一块内存。    }    ~A()    {        delete []a;   //(c)这样处理的意义在于:删除用new建立的数组a[],释放数组所占用的内存空间。    }    A(A &b);    void output() { cout<<a<<endl; }};A::A(A &c){    a=new char[strlen(c.a)+1];    strcpy(a,c.a);}int main(){    A a("good morning, code monkeys!");    a.output();    A b(a);    b.output();    return 0;}

运行结果:


0 0