估计很多朋友和我一样,用惯了VC的CString,感觉CString很方便.
不过VC的CString并非跨平台的,所以有时不得不使用STL的string.但由于习惯问题,难免感觉STL的功能不如CString,至少在使用习惯上,难以适应.例如:STL的string 的replace和CString::Replace的使用就不一样.
所以有必要对string加以改造,让其使用起来更方便.
在面向对象的世界里,要达到此目的,很简单,我们只需要继承string,再添加相应函数就可以了.幸运的是stl的string都使用小写开头的,和CString刚好不冲突.
下面就以Replace作为例子说明如何扩展string
声明如下:
实现如下:
此外为了支持UNICODE,做点声明
使用例子
其他需要扩展的函数都可以按此方法添加,非常方便
不过为了跨平台,还需要对只在VC中声明的宏进行重新声明,如_T("")等