第九周实践项目1.2-深复制体验
来源:互联网 发布:淘宝怎么给差评 编辑:程序博客网 时间:2024/05/21 22:48
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年4月28日 *版 本 号:v1.0 * *问题描述:为类A增加复制构造函数。 *程序输入: *程序输出:字符串 */#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;}
运行结果:
知识点总结:
从这个程序中,我们进一步了解到了如何进行深复制。即为指针开辟一段存储的空间,不要让它成为“霸道的”野指针,如果对于字符串而言,必须在所在长度上加一。此外,在为类A书写构造函数的时候应该注意,同样要为所需复制构造的函数开辟一段存储空间。
学习心得:
深复制构造函数与普通构造函数类似,不要忘记在.前输入复制对象的名称。即:a=new char[strlen(s.a)+1]。
0 0
- 第九周实践项目1.2-深复制体验
- 第九周上机实践项目 项目1-深复制体验
- 第九周实践项目1-深复制体验
- 第九周项目1--深复制体验
- 第九周项目一 深复制体验
- 第九周【项目1-深复制体验】
- 第九周 【项目-深复制体验】2
- 第九周项目2-深复制体验
- 第九周项目1-深复制体验
- 第九周项目:深复制体验
- 第九周上机实践项目——项目1-深复制体验
- 第九周实践项目1————深复制体验(1)
- 第九周实践项目1————深复制体验(2)
- 第九周上机实践项目1(1):深复制体验
- 第九周上机实践项目1(2):深复制体验
- 第九周上机实践项目1(3):深复制体验
- 第九周 深复制体验
- 第九周-深复制体验
- 消息循环的原理
- css3和js实现重力感应(经测试,andriod4.2支持)
- 带武器的角色类
- 第九周项目2-我的数组类
- iOS开发: iOS蓝牙4.0开发例子
- 第九周实践项目1.2-深复制体验
- 数据挖掘-Logistic回归建模
- 改进的冒泡排序
- 第九周项目1阅读程序(3)
- 编程小练习
- 响应者链的原理
- Impala入门笔记
- 第九周实践——阅读程序(3)
- CUDA 学习(二)