第六周项目一—深复制体验

来源:互联网 发布:plsql 格式化sql 编辑:程序博客网 时间:2024/05/29 15:46
#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的关系:复制与被复制     }    ~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;}


运行结果:

学习心得:若删去第一个注释的那一行程序运行的时候就会出错,因为没有字符串结束符的储存位置。如果不是的话,可以不加1.

 

0 0