রূপান্তর কনস্ট্রাক্টর কী?
যদি একটি কনস্ট্রাক্টর শুধু একটি আর্গুমেন্ট নেয়, তবে সেটি রূপান্তর কনস্ট্রাক্টর (conversion constructor) হয়ে যায়। এটি সেই টাইপের ভ্যালু থেকে ক্লাস অবজেক্টে ইমপ্লিসিট কনভার্সন (implicit conversion) অনুমতি দেয়।
উদাহরণ
#include <iostream>
using namespace std;
class MyClass {
int my_var;
public:
MyClass(int x) { my_var = x; } // রূপান্তর কনস্ট্রাক্টর
void display() { cout << "Value: " << my_var << endl; }
};
int main() {
MyClass obj(10);
obj.display(); // Value: 10
obj = 50; // ইমপ্লিসিট কনভার্সন: int -> MyClass
obj.display(); // Value: 50
return 0;
}
আউটপুট
Value: 10 Value: 50
প্রতিরোধ: ইমপ্লিসিট কনভার্সন রোধ করতে কনস্ট্রাক্টরের আগে explicit কীওয়ার্ড ব্যবহার করুন: explicit MyClass(int x)।