第2章 类与对象及其应用.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2010年10月 重庆理工大学计算机科学与工程学院计算机科学与技术系刘恒洋 * 第2章 类和对象及其应用 重点 2.类及类成员的定义和对象的使用 3.类的初始化、赋值和析构 4.操作符重载 5.类模板和标准模板库 6.示例系统中基础类的设计 1.C++对C语言的扩充 2.1 C++基础语法 1. string数据类型(补充) 查询字符串长度:由size()完成。理解程序2.1.cpp; 判断字符串是否为空:理解程序2.2.cpp; 用字符序列或第二个字符串来初始化另外一个字符串对象:理解程序2.3.cpp; 两个字符串的比较:理解程序2.3.cpp; 字符串之间的复制:理解程序2.4.cpp; 字符串的连接:理解程序2.5.cpp; 读/写单个字符串:理解程序2.6.cpp。 2 new和delete表达式 系统为每个程序都提供了一个在程序执行时可用的内存池,这个可用内存池被称为程序的空闲存储区或堆,运行时刻的内存分配被称为动态内存分配,在C++中,动态内存分配由new表达式应用在一个类型指示符上来完成; 当对象完成了使命时,必须显式地把对象的内存返还给空闲存储区。通过把delete表达式应用在“指向用new表达式分配的对象指针”上来做到这一点: 所有从空闲存储区分配的对象都是未命名的,这是动态分配内存的另一个特点。new表达式并不返回实际被分配的对象,而且返回这个对象的地址。对象的所有操作都通过这个地址间接来完成。 关键字delete与指针之间的空方括号表示delete的一种特殊语法,它释放由new表达式分配的数组的存储区。 int *pi = new int; //从空闲存储区中分配了一个int型的对象,并用它的地址初始化pi,这个对象本身并没有被初始化 int *pi = new int(1024); //不但分配了对象而且用1024将其初始化了 int *pia = new int[10]; //动态分配一个对象数组,数组元素并没有初始化 delete pi; //释放了pi指向的int对象,将其返还给空闲存储区 delete[] pia; //释放了pia指向的10个int对象的数组,把相关的内存区返还给空闲存储区 3 const限定修饰符 const的引入 考虑循环语句for(int index=0; index512; ++index)中常量512的作用以及使用上的不方便; 改进如下:int bufSize=512; for(int index=0; indexbufSize; ++index),以上循环语句还存在什么不妥之处? 继续改进如下:const int bufSize=521; for(int index=0; indexbufSize; ++index); 上面的语句const int bufSize=512; 中表示定义了一个整形常量,const类型限定修饰符把一个对象转换成一个常量; 常量在定义后它的值就不可以被修改,所以常量在定义的时候必须初始化。 指向const常量的指针 指出下面代码的错误: const double minWage = 9.60; double *ptr = minWage; 改正如下: const double minWage = 9.60; const double *cptr = minWage; 上面的例题中,cptr是一个指向double类型的const对象的指针(可以从右往左把这个定义读为“cptr是一个指向double类型的、被定义成const对象的指针”)。cptr本身不是常量,可以重新给cptr赋值,使其指向不同的对象,但不能修改cptr所指向的对象的值,例如: const对象的地址只能赋值给指向const对象的指针,但是,指向const对象的指针可以被赋以非const对象的地址,如上例; 在实际的程序中,指向const常量的指针常被用作函数的形式参数。它作为一个约定来保证被传递给函数的实际对象在函数中不会被修改,例如: const double *pc = 0; const double minWage = 9.60; pc = minWage; //正确:不能通过pc修改minWage的值 double dval = 3.14; pc = dval; //正确:不能通过pc修改dval,虽然dval本身不是一个常量 dval = 3.14159; //正确 *pc = 3.14159; //错误 int strcmp(const char *str1, const char *str2); const指针(常指针) int errNumb = 0; int *const curErr = errNumb; cu

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档