VC驿站__编写一个精简版的string类.docx

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
\0 \0。 String str=s2+s3;然后再赋给第 String str=s2+s3; 然后再赋给第 1 个字 String 类。 编写一个精简版的 string 类 该类的具体功能如下所示 . 计算字符串的长度,类似于 string 类的 size 或者 length 可对字符串进行赋值,如 String str=hello world; 可将 char 型字符串直接赋给 String 型字符串,如: String str=Hello world; char ch[10]=not at all; str=ch; 可如同对象那样将字符串进行初始化, String str(Mother); 可将两个字符串相加,然后将合并后的字符串赋给另一个字符串,如 可执行加等操作 (+=),也就是将第 1 个字符串与第 2 个字符串相加, 符串,如: String s1+=s2 可对两个字符串进行比较,如 str1==str2 , str1str2 或者 str1str2. 可根据字符串的大小自动调节保存字符串的数组的大小。 限制数组越界 通过成员函数输出字符串,如 s1.getlen() 。 通过重载输出运算符 输出字符串,如: string s1(hello),s2(good); couts1s2; 通过重载输入运算符 输入字符串,如: cins1s2 创建 String 类 上节简单地对精简版的 String 类的功能进行了介绍,本节首先实现这个 我们知道C++自带的String类在声明一个字符串后,如: String s; 该字符串s仅仅是声明,并未初始化,因此该字符串是个空字符,只保存了结束符号 我们首先来实现这个功能。 个空字由于对象的创建是通过构造函数来实现的, 因此我们可以通过默认构造函数来构造 个空字 符串。 通过String类的默认构造函数实现空字符串。程序代码如下: 1.2.3.4.5.6.#in clude iostream using n amespace std; class String{public:7.Strin g();int getle n()con st{retur n len;}8.9.private:10. 1. 2. 3. 4. 5. 6. #in clude iostream using n amespace std; class String { public: 7. Strin g(); int getle n()con st{retur n len;} 8. 9. private: 10. 11. 12. int len; char *str; 13. 14. }; Stri ng::Stri ng() { 15. 16. len = 0; str= new char[1]; str[0]=\0: 17.18. 17. 18. 19. } int _tmain(int argc, _TCHAR* argv[]) { 20.21.22.23. 20. 21. 22. 23. 24. Stri ng s1; couts1.getle n(); system(pause); return 0; 输出:0 分析:第6行声明了一个默认构造函数,第 分析: 第6行声明了一个默认构造函数,第 12~17行是该函数的定义部分。 第14行将所创建的字符串的长度 len 设置为0,len在第9行定义。 第15行在堆中创建一个 char型数组,该数组只有一个元素, str保存该数组的地址,char 型指针str在第10行定义。 第16行将char型数组str中唯一一个元素保存结束字符 \0,因此该char型数组变成了 个字符串,一个长度为 0的空字符串。 main函数开始于第19行,第20行用我们创建的String类声明了一个字符串 si,然后第21 行输出该字符串的长度,为 0?成员函数getlen()在第7行定义,它的作用是返回字符串长度 len的值。 创建可以自动调节大小的 Stri ng类字符串对象 本节我们将在已创建空字符串的基础上创建一个有字符的字符串, 并且该字符串课根据字符 的长度自动调节数组的大小。 要实现这个功能,我们需要一个带参数的构造函数,如: Strin g::Stri ng(const char*c onst ch) { len = strle n( ch); str = new char[le n+1]; for(i nt i=0;ile n;i++) str[i] = ch[i]; str[le n]=\0: } 复制代码 这样,假如我们定义并初始化了一个字符串,如 String s(Hello world); 就会自动调用 这个带一个参数的构造函数,同时将 he

文档评论(0)

yusuyuan + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档