标签:
<pre name="code" class="cpp">/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年4月24日 *版 本 号:v1.0 * *问题描述:阅读程序,增加复制构造函数 *输入描述: *程序输出: */ #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与形式参数aa的关系是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; }
深刻复制 2
原文地址:http://blog.csdn.net/suizongtao/article/details/51364922