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