快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

一个 C++ 日期类(第二部分)

当使用日期的时候你经常需要确定某一日期是否在另一日期之前。我将为日期类增加下面这个成员函数(参见 Listing 1):
   int compare(const Date& d2) const;
  Date:compare 类似于strcmp-如果当前对象(*this)在d2之前,它返回一个负整数;如果这两个日期相同,则返回0;否则返回一个正整数(参见 Listing 2 中的函数实现和 Listing 3 中的示例程序)。就像你们都很熟悉的C标准库中的qsort一样,你也可以使用Date::compare来对日期进行排序,就好像你使用strcmp对字符串进行排序一样。下面是一个可传递给qsort的比较函数(下个月的代码封装将包括qsort):
 
 #include "date.h"
int datecmp(const void *p1, const void *p2)
{
  const Date
  *d1p = (const Date *) p1,
  *d2p = (const Date *) p2;
  return d1p->compare(*d2p);
}
  运算符重载

  大多数时候,拥有相关的运算符是更方便的,例如:
 
 if (d1 < d2)
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论