第六周项目一 深复制体验(2)
来源:互联网 发布:python入门看什么书 编辑:程序博客网 时间:2024/06/03 14:05
问题及代码
ALL rights reserved.
*文件名称: 初学对象6
作者:李长鸿
*完成时间:2015.4.15
*问题描述: 阅读程序
*/
#include<iostream>#include<cstring>using namespace std;class A{private: char *a;public: A(char *aa) { a = new char[strlen(aa)+1];//(a)这样处理的意义在于:给数组a分配了一段空间,使它名花有主,不做孤魂野鬼找不到家; strcpy(a, aa); //(b)数据成员a与形式参数aa的关系:a赋值为aa,相等关系; } ~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)所在的那一行去掉,会出现什么现象?
为什么?
答:a变成了野指针,找不到地址,无法做访问;
为什么a数据成员所占用的存储空间要在aa长度基础上加1?
答:因为数组存储末尾都有个 '\0',占了一个长度;
若指针a不是指向字符(即不作为字符串的地址),是否有必要加1?
答:应该是只要指向数组就需要加1,指向其他单个的数据不用加1吧;
0 0
- 第六周项目一(2):深复制体验
- 第六周 项目一(2):深复制体验
- 第六周 项目一-深复制体验(2)
- 第六周 项目一--深复制体验(2)
- 第六周项目一—深复制体验(2)
- 第六周项目一 深复制体验(2)
- 第六周项目一 深复制体验(2)
- 第六周项目一深复制体验(2)
- 第六周项目一:-深复制体验
- 第六周项目一深复制体验
- 第六周项目一--深复制体验
- 第六周项目一--深复制体验
- 第六周 项目一-深复制体验
- 第六周项目一深复制体验
- 第六周项目一 深复制体验
- 第六周 项目一 深复制体验
- 第六周 项目一 深复制体验
- 第六周项目一深复制体验
- 第6周项目2-我的数组类
- 安装opencv
- 2015年第六周项目五:友元类
- js中同名函数和同名变量的执行问题
- Linux脚本介绍
- 第六周项目一 深复制体验(2)
- 第六周项目3——人数不定的工资类
- Android使用Gradle进行打包混淆,包括依赖Library
- 数据结构中的几种树
- 体验常成员函数
- maven pom 报错 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1
- 大一第二学期第6周【程序阅读(3)】
- web报表工具FineReport的公式编辑框的语法简介
- Android是否可以实现静默安装模式