cstring,string,string.h区别比较 cstring string 区别

cstring,string,string.h区别比较 cstring string 区别

一直没弄清楚这三者 的关系,今天花了点时间仔细比较一番,记录下来,一方面便于日后回顾,二来希望他人可以少走弯路。

首先,要明确的是cstring, string, string.h 是三个文件名,而不是类名,如果你将vs2010(或者其它版本)安装在默认路径下,这三个文件可以在C:Program FilesMicrosoft VisualStudio 10.0VCinclude路径下找到,查看每个文件里面的内容,结合网上看的一些帖子,我得出以下结论:

1、string.h是C标准库下的文件,C++向兼容C,所以包含了该文件,这个文件应该是原封不动的与C标准库下一致的。类似这样的文件还有math.h,setjmp.h,stdlib.h,stddef.h等等C标准库下的头文件;

2、cstring是C++对string.h的简略升级与包装,并将它放置在命名空间std下,该文件的所有代码如下:

所以,使用cstring时要用using namespacestd,cstring里的内容与方法,应该与C标准库下的string.h一致。

3、而string就与前面两个有本质差别了。它是C++自己开发封装的类,同样用于字符串操作,其中用到了很多的操作符重载等方法,实现方法和C标准库中的string.h有很大差别。

另外容易混淆的是,在MFC中,还有CString类,它与cstring是有本质区别的,前者是类名,使用时包含头文件afx.h,后者是文件名,两者实现的方法也大相径庭。

个人总结,水平有限,如有不妥之处,敬请指正。

参考:http://blog.csdn.net/suyksuyk/article/details/4698020

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/264603.html

更多阅读

String与StingBuffer的区别 nssting 转jsonstring

http://shop69483277StringBuffer是可变的而String是不可变的.而且String用得多个的话会占用不同的内存.如:String str = "bb";str = "aa";前一个bb的内存地址不变,当又给它赋值为aa时它又指向aa的地址.String s ;每次对s进行赋值操

Intel HD4000驱动初探 DSDT和EFI String驱动 黑苹果dsdt教程

说明介绍:Intel HD4000集显驱动在系统10.8和10.7.5以后的系统中都自带了驱动。可是安装黑苹果的人还是有很多人驱动不了,包括我自己的E1 471也没有能驱动。所以写这一贴,只能说是大家相互探讨驱动方法而以,给没有驱动成功的人一点尝试另

CString和string之间的转换 cstring to string

利用MFC进行编程时,我们从对话框中利用GetWindowText得到的字符串是CString类型,CString是属于MFC的类。而一些标准C/C++库函数是不能直接对CString类型进行操作的,所以我们经常遇到将CString类型转化char*等等其他数据类型的情况。这

声明:《cstring,string,string.h区别比较 cstring string 区别》为网友胡渣硬男分享!如侵犯到您的合法权益请联系我们删除