在模板函数中使用常量字符串字面值(第二部分)

ZDNet软件频道 时间:2003-01-09 作者:BUILDER.COM |  我要评论(53)
本文关键词:cpptips
上一节,我们讨论了如何处理常量字符字面值的一些方法。然而,很多时候你只在一个常量字符字面值,但却把它当成多种字符串类型来访问。

上一节,我们讨论了如何处理常量字符字面值的一些方法。在文中,可以得出,CONST_STR(CharType, string)可以扩展为const [signed/ unsigned] char *或者 const wchar_t *,但是不能同时扩展为两者。

然而,很多时候你只在一个常量字符字面值,但却把它当成多种字符串类型来访问。例如,假设一个常量字符串字面值(" f"),很多其他的函数都把它当成const char *const unsigned char * const wchar_t *来访问。

把常量字符串字面值当成多种字符串类型来访问在很多时候非常有用,特别是以下的几种情况:

  • 程序中使用wchar_t字符串,但你只能调用一个外部的只有char字符串类型的连接库。
  • 处理过时的API的时候。(例如,你使用wchar_t字符串,但API需要的是char字符串。)
  • 在每一个源程序文件的开头声明常量的时候。(参见以下范例)

为了实现以上的要求,我们建立一个class (string_constant)类,这一个类内部包含了有关字符串的继承:

  • 一个const char * string
  • 一个const wchar_t * string

以下的代码简单但又精确:

 

这里是remove_enters函数的范例:



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134