/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All right reserved.
*文件名称:text.cpp
*作 者:闫舒
*完成日期:2016年6月12日
*版 本 号:code blocks
*
*问题描述:为类A增加复制构造函数。
*程序输入:
*程序输出:字符串
*/
<pre name="code" class="cpp">#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);//数据成员a与形式参数aa的关系:公用一块内存
}
~A()
{
delete[]a;//这样处理的意义在于:释放为a开辟的空间
}
A(A &s)
{
a = new char[strlen(s.a)+1];
strcpy(a,s.a); //为复制的复制构造函数开辟一段储存空间
}
void output(){cout<<a<<endl;}
};
int main()
{
A a("good morning,code monkeys!");
a.output();
A b(a);
b.output();
return 0;
}
运行结果:
<img src="https://img-blog.csdn.net/20160612210251002?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />