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

C++-এ কপি এলাইজন এবং রিটার্ন ভ্যালু অপ্টিমাইজেশন কী?


কপি এলাইজন (Copy Elision) কে কপি অমিশন (Copy Omission) ও বলা হয়। এটি কম্পাইলার অপ্টিমাইজেশন কৌশলগুলোর একটি। এটি অবজেক্টের অপ্রয়োজনীয় কপি এড়াতে সাহায্য করে। প্রায় সব বর্তমান কম্পাইলার এই কপি এলাইজন কৌশলটি ব্যবহার করে।

আসুন একটি উদাহরণ কোডের মাধ্যমে এটি কীভাবে কাজ করে তা দেখি।

উদাহরণ কোড

#include <iostream>
using namespace std;

class MyClass {
public:
    MyClass(const char* str = "\0") { // ডিফল্ট কনস্ট্রাক্টর
        cout << "Constructor called" << endl;
    }
    MyClass(const MyClass &my_cls) { // কপি কনস্ট্রাক্টর
        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++ কম্পাইলার এই ধরনের ওভারহেড এড়াতে পারে।

  1. C++-এ পোস্টফিক্স অপারেটর (Postfix Operators) কী?

  2. C++-এ ভেরিয়েবল এবং ভেরিয়েবলের টাইপগুলো কী?

  3. C++-এ ++i এবং i++ এর পার্থক্য

  4. C++-এ signed এবং unsigned কিওয়ার্ড