কম্পিউটার টিউটোরিয়াল

C++-এ রূপান্তর অপারেটর কীভাবে কাজ করে? (How do conversion operators work in C++?)

রূপান্তর অপারেটর কার্যক্রম

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) সক্ষম করে।

  1. OpenCV-এ C++ ব্যবহার করে মাউস ইভেন্ট নিয়ে কাজ করা

  2. C++-এ লজিক্যাল অপারেটরদের রিটেন ভার্সন

  3. C++17-এ ইনলাইন ভেরিয়েবল কীভাবে কাজ করে?

  4. C++-এ এক্সসেপশন কীভাবে কাজ করে