第九周上机实践项目1(3):深复制体验

来源:互联网 发布:北京狮岛编程下载 编辑:程序博客网 时间:2024/05/01 11:20
/*Copyright (c)2016,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:app.cpp*作    者: 赵子琳*完成日期:2016年5月15日*版 本 号:v1.0*问题描述:阅读下面的程序,将注释(a)所在的那一行去掉,会出现什么样的现象,为什么,为什么a的数据成员所占用的存储空间要在*aa长度上加一,若指针不是指向字符(即不作为字符串的地址),是否有必要加一。*输入描述:*输出描述:*/#include<iostream>#include<cstring>using namespace std;class A{private:    char *a;public:    A(char *aa)    {        //a = new char[strlen(aa)+1];  删除这句会造成指针a没有指向的地址,造成野指针的情况        //加1是因为aa字符串的最后一个字符是"\0"不算入长度内,所以加1        strcpy(a, aa);    }    ~A()    {        delete []a;    }    void output() { cout<<a<<endl; }};int main(){    A a("good morning, code monkeys!");    a.output();    A b("good afternoon, codes!");    b.output();    return 0;}

0 0