Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตัวดำเนินการแปลงใน 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