luqingfei@C++

为中华之崛起而崛起!
兼听则明,偏听则暗。

类的操作练习题四:实现自己的string类

a、标准库包含一个string类,但创建自己的string类可以弄明设计和编写C++类的许多问题。使用基本的char数据类型编写一个string类,看看它如何隐藏使用C样式字符串时的复杂性。

      为MyString类创建一个头文件,把它放在自己的命名空间中。给这个类提供两个私有数据成员:整型长度和char*,char*指向对象所管理的字符串。为什么要把长度作为该类的一个数据成员存储?

b、创建类的一个实现文件(.cpp),并提供构造函数,从下面的数据类型中构建MyString对象:
      ·一个字符串字面量(例如 const char*类型),以便编写MyString s1("hello")。
      ·一个重复多次的字符。默认的重复次数应是1。使用这个构造函数的例子如MyString s2('c', 5)。
      ·一个整数值,这样MyString s3(10)就存储了字符串"10"。
      这些构造函数是显式的还是隐式的?构造函数在需要时应提供错误处理。

c、构造函数为存储字符串而分配内存;提供一个析构函数,在删除对象时正确地释放内存。

d、编写该类的副本构造函数,以便从其他字符串中创建和初始化MyString对象。

e、给类添加一些成员函数:
      ·返回字符串的长度
      ·输出字符串
      ·索引从0开始,找出某个字符或子字符串在字符串中的位置,如果没有找到,就返回-1

现在可以编写一个测试程序,以各种方式创建并处理mystring对象。保证所有的成员都工作正常。


MyString.h


 

MyString.cpp


 

main.cpp


 

posted on 2009-03-19 16:09 luqingfei 阅读(815) 评论(0)  编辑 收藏 引用 所属分类: C++基础


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

统计

留言簿(6)

随笔分类(109)

随笔档案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜