• 运算符重载


    #include <iostream>
    using namespace std;
    class Distance
    {
       private:
          int feet;             // 0 到无穷
          int inches;           // 0 到 12
       public:
          // 所需的构造函数
          Distance(){
             feet = 0;
             inches = 0;
          }
          Distance(int f, int i){
             feet = f;
             inches = i;
          }
          // 显示距离的方法
          void displayDistance()
          {
             cout << "F: " << feet << " I:" << inches <<endl;
          }
          // 重载负运算符( - )
          Distance operator- ()  
          {
             feet = -feet;
             inches = -inches;
             return Distance(feet, inches);
          }
          // 重载小于运算符( < )
          bool operator <(const Distance& d)
          {
             if(feet < d.feet)
             {
                 cout<<d.feet<<endl; 
                return true;
             }
             if(feet == d.feet && inches < d.inches)
             {
                return true;
             }
             cout<<d.feet<<" "<<d.inches<<endl;
             return false;
          }
    };
    int main()
    {
       Distance D1(11, 10), D2(5, 11);
     
       if( D1 < D2 )// 运算符左侧为调用对象,右侧为参数被传递的对象 
       {
          cout << "D1 is less than D2 " << endl;
       }
       else
       {
          cout << "D2 is less than D1 " << endl;
       }
       return 0;
    }
    #include <iostream>
    using namespace std;
    class Box
    {
       public:
          double getVolume(void)
          {
             return length * breadth * height;
          }
          void setLength( double len )
          {
              length = len;
          }
          void setBreadth( double bre )
          {
              breadth = bre;
          }
          void setHeight( double hei )
          {
              height = hei;
          }
          // 重载 + 运算符,用于把两个 Box 对象相加
          Box operator+(const Box b)
          {
             Box box;
             box.length = this->length + b.length;
             box.breadth = this->breadth + b.breadth;
             box.height = this->height + b.height;
             cout<<b.length<<" "<<b.breadth <<" "<<b.height<<endl; 
             return box;
          }
       private:
          double length;      // 长度
          double breadth;     // 宽度
          double height;      // 高度
    };
    // 程序的主函数
    int main( )
    {
       Box Box1;                // 声明 Box1,类型为 Box
       Box Box2;                // 声明 Box2,类型为 Box
       Box Box3;                // 声明 Box3,类型为 Box
       double volume = 0.0;     // 把体积存储在该变量中
       // Box1 详述
       Box1.setLength(6.0); 
       Box1.setBreadth(7.0); 
       Box1.setHeight(5.0);
       // Box2 详述
       Box2.setLength(12.0); 
       Box2.setBreadth(13.0); 
       Box2.setHeight(10.0);
       // Box1 的体积
       volume = Box1.getVolume();
       cout << "Volume of Box1 : " << volume <<endl;
       // Box2 的体积
       volume = Box2.getVolume();
       cout << "Volume of Box2 : " << volume <<endl;
       // 把两个对象相加,得到 Box3
       Box3 = Box1 + Box2;
       // Box3 的体积
       volume = Box3.getVolume();
       cout << "Volume of Box3 : " << volume <<endl;
       return 0;
    }
  • 相关阅读:
    数学趣题——数字的全排列
    数学趣题——谁在说谎
    数学趣题——移数字游戏
    数学趣题——魔幻方阵
    数学趣题——亲密数
    数学趣题——数字翻译器
    数学趣题——求圆周率的近似值
    数学趣题——完全数
    Linux:CentOS 7 连接ssh方法
    Linux:CentOS 7 服务器之间ssh无密码登录、传输文件
  • 原文地址:https://www.cnblogs.com/liuzhaojun/p/11328591.html
Copyright © 2020-2023  润新知