第9周项目1:深复制体验(3)
2016-04-28 08:59
288 查看
/* * Copyright(c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:第9周项目1:深复制体验(3) * 作者:于子娴 * 完成日期:2016.4.28 * 版本号:v1.0 * * 问题描述:为类A增加复制构造函数,用下面的main函数测试 int main() { A a("good morning, code monkeys!"); a.output(); A b(a); b.output(); return 0; } * 输入描述: * 程序输出: */ #include<iostream> #include<cstring> using namespace std; class A { private: char *a; public: A(char *aa) { a = new char[strlen(aa)+1]; //(a)这样处理的意义在于:空间字节数,形参给出的字符串长度再加1,因为要存放'\0'。 strcpy(a, aa); //(b)数据成员a与形式参数aa的关系:数据成员a与形式参数aa共用一块内存。 } ~A() { delete []a; //(c)这样处理的意义在于:删除用new建立的数组a[],释放数组所占用的内存空间。 } A(A &b); void output() { cout<<a<<endl; } }; A::A(A &c) { a=new char[strlen(c.a)+1]; strcpy(a,c.a); } int main() { A a("good morning, code monkeys!"); a.output(); A b(a); b.output(); return 0; }
运行结果:
相关文章推荐
- powerdesigner转excel的VB脚本
- 指针输出ask 码差值
- 编程小练习
- JAVA日志系统
- 第九周项目2——我的数组类
- 第8周项目2 用对象数组操作长方柱类
- 团队项目个人工作总结(4月28日)
- ios goto语法。
- 为什么日本德国没有一流互联网企业?
- 如何将文件夹建在Win10任务栏
- eclipse经常弹出Subversion Native Library Not Available,什么是JavaHL,svnkit完美解决
- JS点击按钮弹出窗口
- hao916,hao123,2345.com浏览器劫持-分析与清除
- <input>checkbox
- 编程小练习
- 例会新名词
- 例会新名词
- 软件定义存储是伪命题中的战斗机!
- 第九周项目一深复制体验(2)
- VS报错 error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义