C++ 中的轉換運算子如何工作?


在本文中,我們來看看 C++ 中的轉換運算子是什麼。C++ 支援面向物件的編制。因此,我們可以將某些真實世界物件作為具體型別建立為類。

有時,我們需要將某些具體型別物件轉換為某些其他型別物件或某些基本資料型別。若要進行此轉換,我們可以使用轉換運算子。這是像類中的運算子過載函式那樣建立的。

在此示例中,我們對複數類進行操作。它有兩個引數實數和虛數。當我們將此類的物件賦值為某些雙型別資料時,它將使用轉換運算子轉換為其幅度。

示例程式碼

#include <iostream>
#include <cmath>
using namespace std;
class My_Complex {
   private:
      double real, imag;
   public:
      My_Complex(double re = 0.0, double img = 0.0) : real(re), imag(img)    //default constructor {}
      double mag() {       //normal function to get magnitude
         return getMagnitude();
      }
      operator double () { //Conversion operator to gen magnitude
         return getMagnitude();
      }
      private:
         double getMagnitude() { //Find magnitude of complex object
            return sqrt(real * real + imag * imag);
         }
   };
   int main() {
      My_Complex complex(10.0, 6.0);
      cout << "Magnitude using normal function: " << complex.mag() << endl;
      cout << "Magnitude using conversion operator: " << complex << endl;
}

輸出

Magnitude using normal function: 11.6619
Magnitude using conversion operator: 11.6619

更新於:2019 年 7 月 30 日

215 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告