কপি এলিশন কপি বাদ নামেও পরিচিত। এটি একটি কম্পাইলার অপ্টিমাইজেশান কৌশল। এটি বস্তুর অপ্রয়োজনীয় অনুলিপি এড়ায়। প্রায় যেকোনো বর্তমান কম্পাইলার এই কপি এলিশন কৌশল ব্যবহার করে।
আসুন দেখি কিভাবে এটি একটি উদাহরণ কোডের সাহায্যে কাজ করে:
উদাহরণ কোড
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass(const char* str = "\0") { //default constructor
cout << "Constructor called" << endl;
}
MyClass(const MyClass &my_cls) { //copy constructor
cout << "Copy constructor called" << endl;
}
};
main() {
MyClass ob = "copy class object";
} আউটপুট
Constructor called
এখন আলোচনা করা যাক কেন কপি কনস্ট্রাক্টর বলা হয় না?
সুতরাং যখন একটি বস্তু তৈরি করা হচ্ছে, তখন একটি অস্থায়ী বস্তু তৈরি হয় এবং এটি প্রকৃত বস্তুতে অনুলিপি করে। তাই আমরা বলতে পারি যে অভ্যন্তরীণভাবে এটি এইরকম দেখাবে:
MyClass ob = "copy class object";
হিসাবে কাজ করবে:
MyClass ob = MyClass("copy class object"); C++ কম্পাইলাররা এই ধরনের ওভারহেড এড়ায়