当前位置:编程学习 > C/C++ >>

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;

        }

 

 

 


[cpp] 
#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.
 
***************************/ 

#include <iostream>
using namespace std;

class Distance
{
   private:
      double feet;             // 0 to infinite
      double inches;     &nb

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,