标签:
问题及代码:
/* *Copyright(c) 2016.烟台大学计算机与控制工程学院 *ALL rights reserved. *文件名称:main.cpp *作者:郝昱猛 *完成日期:2016年5月10日 *问题描述:深复制体验,增加复制构造函数 */ #include<iostream> #include<cstring> using namespace std; class A { private: char *a; public: A(char *aa) { a = new char[strlen(aa)+1]; //(a)这样处理的意义在于:不浪费内存空间,节省许多系统单元 strcpy(a, aa); //(b)数据成员a与形式参数aa的关系:a与aa同为指针数组,系统分配的内存空间相同 } A(A &b) { a=new char[strlen(b.a)+1]; strcpy(a,b.a); } ~A() { delete []a; //(c)这样处理的意义在于:释放指针所指向的内存空间,否则会导致动态分配的内存 // 无法回收,使得程序所占的内存越来越大 } void output() { cout<<a<<endl; } }; int main(){ A a("good morning, code monkeys!"); a.output(); A b(a); b.output(); return 0; }
运行结果:
标签:
原文地址:http://blog.csdn.net/qq_33875089/article/details/51362268