C++技巧:比较符的自动化操作

ZDNet软件频道 时间:2003-01-07 作者:BUILDER.COM |  我要评论()
本文关键词:cpptips
如果你没有任何准备,当进行比较操作时,你一定通过编写一个类来实现,也就是说,你一定设计一个类以用于两个对象之间进行相互比较(==, !=, >,等)。

如果你没有任何准备,当进行比较操作时,你一定通过编写一个类来实现,也就是说,你一定设计一个类以用于两个对象之间进行相互比较(==, !=, >,等)。

当设计这样一个类的时候,你通常会涉及到相关的比较符,如:

  • 比较符 "!=" - "x != y" 相当于 "!(x == y)"
  • 比较符"<=" - "x <= y" 相当于"!(y < x)"
  • 比较符">" - "x > y" 相当于"y < x"
  • 比较符">=" - "x >=y"相当于"!(x < y)"

从上面可以推出下面的结论:

  • 执行比较符==之后,你可以根据==符号使用!=比较符。
  • 执行比较符<之后,你可以根据<符号执行<=, >, >=比较符。

以上过程的自动化

实现以上过程的自动化是相当容易的。首先,定义==和<比较符;然后,在定义好的类中生成一个映射,这一映射能够自动地执行定义好的比较符,如下所示:

BEGIN_OPERATORS_MAP(<your_class_name>)
<operator_type1>
<operator_type2>
. . .
<operator_type>可以为以下任意一种:

  • OPERATOR_DIFFERENT根据==操作符执行。
  • OPERATOR_LESS_OR_EQUAL根据<操作符执行。
  • OPERATOR_GREATER,根据<操作符执行。
  • OPERATOR_GREATER_OR_EQUAL根据<操作符执行。
  • OPERATOR_COMPARISONS,根据<操作符执行<=, >, 及>=。
  • OPERATOR_ALL_COMPARISONS根据==操作符执行<=, >, >=及 != 。

以下是一个范例:

请下载压缩文件 ,这一文件包含比较符自动化操作过程的代码。



责任编辑:炒饭

欢迎评论或投稿


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