এই নিবন্ধে আমরা 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