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.

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


你可能感兴趣的:(C++,类,读书笔记,cc++)