C++ 中的運算子多載********

來源:互聯網
上載者:User

標籤:eth   特殊   名稱   class   主函數   pes   opera   void   volume   

您可以重定義或重載大部分 C++ 內建的運算子。這樣,您就能使用自訂類型的運算子。

重載的運算子是帶有特殊名稱的函數,函數名是由關鍵字 operator 和其後要重載的運算子符號構成的。與其他函數一樣,重載運算子有一個傳回型別和一個參數列表。

Box operator+(const Box&);

聲明加法運算子用於把兩個 Box 對象相加,返回最終的 Box 對象。大多數的重載運算子可被定義為普通的非成員函數或者被定義為類成員函數。

#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;
         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;
}

C++ 中的運算子多載********

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.