- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计03-3.详解对象
第3章详解对象 3.6 对象数组 对象数组是指数组元素为对象的数组。该数组中若干个元素必须是同一个类的若干个对象。 对象数组的定义、赋值和引用与普通数组一样,只是数组的元素与普通数组不同,它是同类的若干个对象。 对象数组的定义格式如下: 类名 数组名[大小]... 其中,类名指出该数组元素是属于该类的对象,方括号内的大小给出某一维的元素个数。一维对象数组只有一个方括号,二维对象数组要有两个方括号,等等,例如: Point points[10]; 表明points是一维对象数组名,该数组有10个元素,每个元素都是类Point的对象。 对象数组可以被赋初值,也可以被赋值 定义对象数组并赋初值,例如: Point points[3]={Point(2.0,2.0), Point(3.0,3.5),Point(4.5,5.5)}; 定义对象数组并赋值,例如: Point points[3]; points[0]=Point(2.0,2.0); points[1]=Point(3.0,3.5); points[2]=Point(4.5,5.5); //先构造临时对象,然后进行赋值,最后析构该对象 与基本类型数组一样,在使用对象数组时也只能引用单个数组元素。每个数组元素都是对象,通过这个对象,便可以访问其公有成员,格式为: 数组名[下标].成员名 例如: for(int i=0; i3; i++) coutpoints[i].GetX(),points[i].GetY()endl; 3.7 字符串对象 字符串常量是用一对双引号括起来的字符序列,它在内存中的存放形式是,按串中字符的排列次序顺序存放,每个字符占一个字节,并在末尾添加\0作为结尾标记。 C++和C一样,基本数据类型中没有字符串类型。 C++支持两种类型的字符串,一种是以\0结束的字符数组,即C语言格式的字符串,并在标准库中提供了一组字符串操作函数;另外一种是通过string类声明的字符串对象。 3.7.2 string类 标准C++类库提供了string类,这是通过类库扩展数据类型的典型范例。 通过标准string类可以用操作基本数据类型的方法操作字符串,比较方便快捷,同时更加安全。 如字符串复制函数strcpy(…),strncpy(…)不去检查数组边界的规定,如果源数组包含的字符多于目标数组可以容纳的字符个数,依然进行复制,这样就可能造成意外错误甚至系统崩溃。string类可以防止出现这种错误。 标准C++为string类的对象定义了许多字符串运算符,常用的如下表。 这些运算允许在一般表达式中使用string对象,而不在需要调用诸如strcpy()或strcat()之类的函数。 另外,string类对象也可以在表达式中和一般的以NULL结束的字符串混在一起使用,例如,把一个以NULL结束的字符串赋给一个string对象。 String对象能自动调整大小以存放相应长度的字符串,不可能出现字符串越界的情况。这种动态特性使其优于以NULL结尾的标准字符串。 如下示例 #include string using namespace std; int main() { string str1(“Alpha”); //带参构造函数 string str2(Beta); string str3(Omega); string str4; //无参构造函数 str4=str1; //字符串赋值 str4=str1+str2; //字符串连接 str4=str1+ to +str3; if(str3str1) //字符串比较 coutstr3str1\n; if(str3==str1+str2) coutstr3==str1+str2\n; str1=“a NULL string.\n”; //字符串常量赋值 string str5(str1); //字符串复制构造 coutstr5; //字符串输出 cinstr5; //字符串输入 return 0; } string类支持多种构造函数,这里介绍几个比较常用的构造函数,其原型为: string(); string(const char* str); string(const string str); 尽管利用字符串运算符可以实现最简单的操作,但是更复杂和精细的操作需要用string类的成员函数来完成,string类有很多成员函数,如: swap(…);insert(…);erase(…);clear(…);c_str(); replace(…);substr(…);等等
您可能关注的文档
最近下载
- 新22J01《工程做法》(新疆图集).pdf VIP
- 2015-2022年河北省专接本(专升本)《英语》真题合集.pdf VIP
- 【GB_T50779-2022 】石油化工建筑物抗爆设计标准.docx VIP
- 蓄电池内阻试验报告.docx VIP
- 《成本与管理会计(第4版)》习题答案 孙茂竹.pdf
- 劳动合同模板正规【5篇】.docx VIP
- 电气控制与PLC技术应用教学教案.docx VIP
- 22K311-5 防排烟系统设备及部件选用与安装.docx VIP
- 2025青海省从优秀村(社区)党组织书记中考录乡镇公务员32人笔试模拟试题及答案解析.docx VIP
- 最新河北省建设工程竣工验收报告6份(市政基础设施工程).pdf VIP
文档评论(0)