कॉपी एलिजन को कॉपी ओमिशन के रूप में भी जाना जाता है। यह कंपाइलर ऑप्टिमाइज़ेशन तकनीकों में से एक है। यह ऑब्जेक्ट्स की अनावश्यक कॉपी से बचाता है। लगभग कोई भी वर्तमान कंपाइलर इस कॉपी एलिजन तकनीक का उपयोग करता है।
आइए एक उदाहरण कोड की मदद से देखें कि यह कैसे काम करता है:
उदाहरण कोड
#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++ कंपाइलर इस तरह के ओवरहेड से बचते हैं।