设为首页 加入收藏

TOP

13.3 本章实例
2013-10-07 01:16:04 来源: 作者: 【 】 浏览:76
Tags:13.3 本章 实例

13.3  本章实例

在前面的章节中,字符串总是用"char *"来表示,串的处理函数和串的表示是分离的。本节将定义一个字符串类,将串的表示和处理函数封装在一起。

【实例13-1】 自定义的string类。

  1. class string  
  2. {  
  3.     int length;                     //串长  
  4.     char * contents;                //串的内容  
  5. public:  
  6.     string(char *s);                //构造函数,带参数  
  7.     ~string();  
  8.     void show();  
  9. };  
  10.  
  11. string::string(char *s)  
  12. {  
  13.     length=strlen(s);               //计算串长  
  14.     contents=new char [length+1];   //申请内存  
  15.     strcpy(contents,s);             //串赋值  
  16. }  
  17. string::~string()  
  18. {  
  19.     delete[] contents;              //释放串的空间  
  20.     length=0;                       //初始化串长度  
  21. }  
  22. string::show()  
  23. {  
  24.     cout<<"string is\""<<contents<<"\".The length is "<<length<<"."<<endl;  
  25.  }  
  26. void main()  
  27. {  
  28.     string s1("the first string");  
  29.     s1.show();  
  30.     string s2("the second string");  
  31.     s2.show();  

程序运行结果如下:

  1. string is "the first string". The length is 16.  
  2. string is "the second string". The length is 17. 
分析:该字符串类将串的实现和处理封装在一起,构造函数带有参数。因此,创建字符串对象时必须带参数。由于串的长度是未知的,所以在构造函数中,根据串的实际长度动态申请内存空间。当退出时,一定要在析构函数中将申请的空间释放。否则,这片动态申请的内存空间将不能再被使用。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.7 多态的基本概念 下一篇21.6 常见问题及解答

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: