Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में कॉपी कंस्ट्रक्टर

कॉपी कंस्ट्रक्टर एक प्रकार का कंस्ट्रक्टर है। यह एक ऑब्जेक्ट बनाता है और इसे उसी क्लास के ऑब्जेक्ट के साथ इनिशियलाइज़ करता है। यदि कॉपी कंस्ट्रक्टर को कक्षा में परिभाषित नहीं किया गया है, तो संकलक स्वयं एक को परिभाषित करता है। एक कॉपी कंस्ट्रक्टर उस वर्ग के लिए जरूरी है जिसमें पॉइंटर वैरिएबल या डायनेमिक मेमोरी एलोकेशन हो।

एक प्रोग्राम जो कॉपी कंस्ट्रक्टर को प्रदर्शित करता है वह इस प्रकार है।

उदाहरण

#include<iostream>
using namespace std;
class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      num1 = n1;
      num2 = n2;
   }
   Demo(const Demo &n) {
      num1 = n.num1;
      num2 = n.num2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};
int main() {
   Demo obj1(10, 20);
   Demo obj2 = obj1;
   obj1.display();
   obj2.display();
   return 0;
}

आउटपुट

num1 = 10
num2 = 20

num1 = 10
num2 = 20

उपरोक्त कार्यक्रम में, क्लास डेमो में एक सामान्य पैरामीटरयुक्त कंस्ट्रक्टर और एक कॉपी कंस्ट्रक्टर होता है। इनके अलावा, एक फ़ंक्शन है जो num1 और num2 के मान प्रदर्शित करता है। ये इस प्रकार दिए गए हैं।

class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      num1 = n1;
      num2 = n2;
   }
   Demo(const Demo &n) {
      num1 = n.num1;
      num2 = n.num2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};

फ़ंक्शन मुख्य () में, क्लास ऑब्जेक्ट obj1 को एक पैरामीटरयुक्त कंस्ट्रक्टर का उपयोग करके आरंभ किया जाता है। ऑब्जेक्ट obj2 को कॉपी कंस्ट्रक्टर का उपयोग करके इनिशियलाइज़ किया जाता है और obj1 के मानों को obj2 में कॉपी किया जाता है। अंत में obj1 और obj2 के मान प्रदर्शित होते हैं। यह नीचे दिया गया है।

Demo obj1(10, 20);
Demo obj2 = obj1;
obj1.display();
obj2.display();

  1. C++ में कंस्ट्रक्टर बनाम असाइनमेंट ऑपरेटर कॉपी करें

    कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर का उपयोग एक ऑब्जेक्ट को दूसरी ऑब्जेक्ट में इनिशियलाइज़ करने के लिए किया जाता है। उनके बीच मुख्य अंतर यह है कि कॉपी कंस्ट्रक्टर नई वस्तु के लिए एक अलग मेमोरी ब्लॉक बनाता है। लेकिन असाइनमेंट ऑपरेटर नई मेमोरी स्पेस नहीं बनाता है। यह पिछले मेमोरी ब्लॉक को इंगित करने

  1. सी ++ में विनाशक

    सी ++ में विनाशक एक वर्ग में सदस्य कार्य होते हैं जो किसी ऑब्जेक्ट को हटाते हैं। उन्हें तब बुलाया जाता है जब क्लास ऑब्जेक्ट स्कोप से बाहर हो जाता है जैसे कि जब फंक्शन समाप्त होता है, प्रोग्राम समाप्त होता है, एक डिलीट वेरिएबल कहा जाता है आदि। विनाशक सामान्य सदस्य कार्यों से भिन्न होते हैं क्योंकि व

  1. C++ में कंस्ट्रक्टर्स

    कंस्ट्रक्टर एक वर्ग के कार्य होते हैं जिन्हें तब निष्पादित किया जाता है जब कक्षा की नई वस्तुएँ बनाई जाती हैं। कंस्ट्रक्टर्स का नाम क्लास के समान है और कोई रिटर्न टाइप नहीं है, यहां तक ​​​​कि शून्य भी नहीं है। वे प्राथमिक रूप से वर्ग के चरों के लिए प्रारंभिक मान प्रदान करने के लिए उपयोगी होते हैं। द