重载后缀C++读书笔记之 赋值运算符= 重载 前缀自减运算符--重载 求负运算符- 重载

题记:写这篇博客要主是加深自己对重载后缀的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

    /**重载赋值运算符 = **/
      void operator=(const Distance &D )
      {
         feet = D.feet;
         inches = D.inches;
      }
      /**重载负号运算符 -  **/
        Distance operator-()
      {
         feet = -feet;
         inches = -inches;
         return Distance(feet, inches);
      }
      /**重载前缀自减运算符 --  **/
        Distance operator--()
        {
            --feet;
            --inches;
            return Distance(feet, inches);
        }
         /**重载后缀自减运算符 --  **/
        Distance operator--(int)
        {
            Distance Temp(feet,inches);
            feet--;
            inches--;
            return Temp;

            }

    

    

    每日一道理
生命,是一场漫长的棋局。这盘棋没有猎猎西风,没有四起狼烟,只有在取舍和进退中抉择。只有像棋中的小卒那样,勇往直前,毫不退缩沿着沟沟坎坎的人生之路,艰难而执着的求索,前进,才会谱写人生最壮丽的强者之歌。
#include <iostream>
using namespace std;

class Distance
{
   private:
      double feet;             // 0 to infinite
      double inches;           // 0 to 12
   public:
      // required constructors
      Distance()
      {
         feet = 0.0;
         inches = 0.0;
      }
      Distance(double f, double i)
      {
         feet = f;
         inches = i;
      }
      /**重载赋值运算符 = **/
      void operator=(const Distance &D )
      {
         feet = D.feet;
         inches = D.inches;
      }
      /**重载负号运算符 -  **/
        Distance operator-()
      {
         feet = -feet;
         inches = -inches;
         return Distance(feet, inches);
      }
      /**重载前缀自减运算符 --  **/
        Distance operator--()
        {
            --feet;
            --inches;
            return Distance(feet, inches);
        }
         /**重载后缀自减运算符 --  **/
        Distance operator--(int)
        {
            Distance Temp(feet,inches);
            feet--;
            inches--;
            return Temp;
        }

      // method to display distance
      void displayDistance()
      {
         cout << "Feet: " << feet <<  " Inches:" <<  inches << endl;
      }

};
int  main()
{
    Distance D1(19.91, -20.13),D2;
    cout << "\nD1 Distance now: \n";
    D1.displayDistance();
    --D1;
    cout << "\nD1 Distance after  --D1  : \n";
    D1.displayDistance();

    -D1;
    cout << "\nD1 Distance after  -D1  : \n";
    D1.displayDistance();

    cout << "\nD1--.displayDistance():\n";
    D1--.displayDistance();

    // use assignment operator
    D2 = D1--;
    cout << "\nafter D2=D1-- Distance of D2 :\n";
    D2.displayDistance();

    cout << "\nafter D2=D1-- Distance of D1 :\n";
    D1.displayDistance();

    return 0;
}
/**************************
运行结果:

D1 Distance now:
Feet: 19.91 Inches:-20.13

D1 Distance after  --D1  :
Feet: 18.91 Inches:-21.13

D1 Distance after  -D1  :
Feet: -18.91 Inches:21.13

D1--.displayDistance():
Feet: -18.91 Inches:21.13

after D2=D1-- Distance of D2 :
Feet: -19.91 Inches:20.13

after D2=D1-- Distance of D1 :
Feet: -20.91 Inches:19.13

Process returned 0 (0x0)   execution time : 0.819 s
Press any key to continue.

***************************/

文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

你可能感兴趣的:(读书笔记)