第4章深入类和对象.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 深入类和对象(II) const成员函数 3.2.3 静态成员 string类 string字符串类 string类成员函数和操作符 string类对象和C字符串的转换 String类对象的输入 string字符串类 C字符串:字符数组 字符串处理函数: strlen、strcpy、strcmp、strcat C++字符串:string类对象 string类成员函数: length、assign、compare、append、substr string类重载的操作符 =、、、==、+ string类对象的定义 C++标准类库提供了字符串类string, 为字符串处理提供了大量的操作 string类封装了字符串的属性和方法使对字符串的处理边的方便 使用string类需要包含头文件string: #include string string类的构造函数 string类成员函数 string类成员函数 string类重载的操作符 string类对象与C字符串的转化 C风格的字符串通常作为string类串的初值 将string类串转化成C风格字符串实际上是从string 类串中提取其中的字符。String类串不以’\0’结尾,而C风格字符串以’\0’结尾。因此从string类串提取字符后,要在尾部加上结束符 指向类数据成员及成员函数的指针 1. 指向类的数据成员的指针 定义格式:类型名 类名::*指针; 2. 指向类的成员函数的指针 定义格式:类型名 (类名::*指针)(参数表) 3. 示例: P124,ex4-17; P125,ex4-18; Char *S1=“12345”; String S2; //建立长度为0的字符串 String S3(“abcde”); //用字符串常量初始化新串 String S4(S3); //利已存在的串S3初始化新串 String S5(S3,1,3); //利用已存在的串S3初始化新串 String S6(S1,3); //利用已存在的字符数组初始化新串 String S7(6,’A’); Cout“S2=“S2endl“S3=“S3endl; Cout“S4=“S4endl“S5=“S5endl; Cout“S6=“S6endl“S7=“S7endl; static const size_type string::npos = -1; //npos(no position)作为查找失败的标志 const int n=6; string line[]={“A”,”above”,”a”,”an”,”about”,”1234”}; for (int i=0;in-1;i++) for (int j=i+1;jn;j++) if(line[i]line[j]) line[i].swap(line[j]); for (i=0;in;i++) coutline[i]endl; string string1=“ABCDE”; const char *c_str1=NULL; int lentgh=string1.length()+1; char * c_str2=new char[length]; string1.copy(c_str2,length,0); c_str2[length]=‘\0’; c-str1=string1.data(); cout“string1=“string1endl; cout“c_str1=“; for(i=0;ilength;i++) coutc_str1[i]; coutendl“c_str2=“c_str2endl; 4.6 友员 ? 友员提供一个不同类的共享机制 友员是 C++ 提供的一种破坏数据封装和数据隐蔽的机制 若将模块 A 声明为模块 B 的友员,A 能够引用 B 中本来被隐蔽的信息 ? 使用友员目的是基于程序的运行效率 ? 运算符重载的某些场合需要使用友员 ? 友员可以是函数,也可以是类 ? 友员关系是非传递的,即 Y 是 X 的友员,Z 是 Y 的友员,但 Z不一定是X的友员 ? 说明 在一个类 X 中,将保留字 friend 冠于某个函数原型或类名 之前,则该函数或类将称为类 X 的友员 例如: class X { int i ; friend void func ( X * , int ) ; // func 是类 X 的友员 void member_func ( int ) ;

文档评论(0)

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

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

1亿VIP精品文档

相关文档