none
为什么“C++ 程序员习惯于使用 != 而不用 <”? RRS feed

答案

  • c++的操作符重载可以让类类型的以更自然的方式使用,但是对于一些操作符比如<,语义就不容易表达,见下例中食堂大师傅

    早餐准备 稀饭3锅,包子10屉,鸡蛋50个

    晚餐 稀饭5锅,包子30屉,鸡蛋0个

    这个时候operator !=()很明确就是没有一个成员相等,如果<表示什么呢?不如明确命名islessBaozi()...

    这种情况c++非常普遍,接口与实现分离后,语义明确对类的使用者和创建者意义重大,想当然往往酿成大祸!

    class Meal{

    friend bool operator< (const Meal& , const Meal&);

    friend bool operator!=(const Meal& , const Meal&);

    int nXiFan;

    int nBaoZi, nEgg;

    public:

    .....

    void cook();

    };

     

    • 已标记为答案 EFanZh 2010年9月11日 4:25
    2010年9月11日 3:02