第九周项目1 深复制体验(1)
来源:互联网 发布:经典伤感网络歌曲 编辑:程序博客网 时间:2024/05/05 17:40
/* *Copyright(c) 2016,烟台大学计算机学院 *All rights reserved. *作 者:刘金石 *完成日期:2016年4月22日 *版本 号:v1.0 *问题描述: 深复制体验 */ #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的关系是aa所指向的字符串复制给a } ~A() { delete[]a;//(c)这样处理的意义在于释放内存减少浪费 } void output(){cout<<a<<endl;}};int main(){ A a("Good morning,code monkeys!"); a.output(); A b("Good afternoon,codes!"); b.output(); return 0;}
运行结果:
学习心得:
所谓深复制就是当数据成员中有指针时在构造函数中为指针分配内存。注释a中动态分配内存时后面加1,因为在strlen检测的是字符串的长度,而实际字符串再存储时最后一位为空字符,所以要加一。如果换成数据则不需加1.
0 0
- 第九周项目1--深复制体验
- 第九周【项目1-深复制体验】
- 第九周项目1-深复制体验
- 第九周项目1 深复制体验(1)
- 第九周项目1-深复制体验(1)
- 第九周项目1—深复制体验(1)
- 第九周项目1—深复制体验(1)
- 第九周项目1-深复制体验(1)
- 第九周项目1-深复制体验(2)
- 第九周项目1-深复制体验(3)
- 第九周项目一-深复制体验(1)
- 第九周项目1-深复制体验(2)
- 第九周项目2深复制体验(1)
- 第九周项目1—深复制体验(2)
- 第九周项目一深复制体验(1)
- 第九周项目一(1)-深复制体验
- 第九周上机实践项目 项目1-深复制体验
- 第九周项目1 深复制体验1
- 很容易错的一道基础题
- 最短路spfa dijkstra模板
- 【HTTP】Fiddler(二) - 使用Fiddler做抓包分析
- 数之和及平均值
- 为什么sublime text中input、img等没有闭合标签?
- 第九周项目1 深复制体验(1)
- 【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试
- Codeforces 554C. Kyoya and Colored Balls【组合数 逆元】
- bc Machine 2016 4 22
- jsp页面上做判断
- Lenovo System x3650 M5 安装 windows Server 2012系统
- BestCoder Round #81 (div.2) Machine
- iterator类的方法说明
- c++第四次作业