ในบทความนี้เราจะมาดูกันว่าตัวดำเนินการการแปลงใน 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