রূপান্তর অপারেটর কার্যক্রম
C++-এ রূপান্তর অপারেটর (conversion operator) একটি ক্লাসের অবজেক্টকে অন্য টাইপে স্বয়ংক্রিয়ভাবে রূপান্তর করতে দেয়। এটি অপারেটর ওভারলোডিং-এর মতো সিনট্যাক্সে লেখা হয়: operator type()।
উদাহরণ: কমপ্লেক্স নম্বরের মagni튜ড
My_Complex ক্লাসে operator double() ডিফাইন করা হয়েছে। যখন অবজেক্টটি double কনটেক্সটে ব্যবহার করা হয় (যেমন cout << complex), তখন এই অপারেটর কল হয় এবং magnitude রিটার্ন করে।
উদাহরণ কোড
#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) {}
double mag() { return getMagnitude(); }
operator double() { return getMagnitude(); } // রূপান্তর অপারেটর
private:
double getMagnitude() { return sqrt(real*real + imag*imag); }
};
int main() {
My_Complex complex(10.0, 6.0);
cout << "Normal function: " << complex.mag() << endl;
cout << "Conversion operator: " << complex << endl; // এখানে operator double() কল হবে
return 0;
}
আউটপুট
Normal function: 11.6619 Conversion operator: 11.6619
মনে রাখবেন: রূপান্তর অপারেটর রিটার্ন টাইপ ঘোষণা করে না। এটিובל렝লাঙ্কেজে ইমপ্লিসিট কনভার্সন (implicit conversion) সক্ষম করে।