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

क्या सरणी सदस्यों को सी ++ में गहराई से कॉपी किया गया है?

C/C++ के मामले में, हम उसी प्रकार के दूसरे वेरिएबल के लिए एक स्ट्रक्चर (या केवल C++ में क्लास) वेरिएबल असाइन करने में सक्षम हो सकते हैं। जिस समय हम एक स्ट्रक्चर वैरिएबल को दूसरे को असाइन करते हैं, वेरिएबल के सभी सदस्यों को दूसरे स्ट्रक्चर वेरिएबल में कॉपी किया जाता है। इस मामले में सवाल उठता है कि क्या होता है जब संरचना में एक सरणी होती है?

अब, हमें सरणियों के बारे में चर्चा करनी है। ध्यान देने वाली मुख्य बात यह है कि सरणी सदस्यों को उथली प्रतिलिपि के रूप में कॉपी नहीं किया जाता है; सरणी सदस्यों के मामले में कंपाइलर स्वचालित रूप से डीप कॉपी को पूरा करता है। नीचे दिए गए कार्यक्रम में, संरचना परीक्षण में सरणी सदस्य str1 [] होता है। जब हम st1 से st2 को असाइन करने में सक्षम होते हैं, तो st2 में सरणी की एक नई प्रति होती है। इसलिए जब हम st1 के str[] को संशोधित या बदलते हैं तो st2 संशोधित या परिवर्तित नहीं होता है।

उदाहरण

# include <iostream>
# include <string.h>
using namespace std;
struct test{
   char str1[20];
};
int main(){
   struct test st1, st2;
   strcpy(st1.str1, "Tutorial Point");
   st2 = st1;
   st1.str1[0] = 'X';
   st1.str1[1] = 'Y';
   /* Because copy was Deep, both arrays are different */
   cout<< "st1's str = " << st1.str1 << endl;
   cout<< "st2's str = " << st2.str1 << endl;
   return 0;
}

आउटपुट

st1's str = XYtorial Point
st2's str = Tutorial Point

इसलिए, सी ++ कक्षाओं के मामले में, हमें सरणी सदस्यों के लिए अपना स्वयं का कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर लिखने की आवश्यकता नहीं है क्योंकि डिफ़ॉल्ट व्यवहार सरणियों के लिए डीप कॉपी है।


  1. सी ++ स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की एक सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि सी में कोई तार नहीं था। हमें कैरेक्टर ऐरे का उपयोग करके स्ट्रिंग्स बनाना है। इसलिए स्ट्रिंग्स की कुछ सरणी बनाने के लिए, हमें वर्णों की एक 2-आयामी सरणी बनानी होगी। प्रत्येक पंक्तियाँ उस मैट्रिक्स

  1. सी++ में छँटाई

    इस खंड में हम देखेंगे कि C++ में सॉर्टिंग एल्गोरिथम कैसे किया जाता है। एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे कि बबलसॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज

  1. स्थिर C++ वर्ग के सदस्यों को कब प्रारंभ किया जाता है?

    Static C++ वर्ग के सदस्यों को स्थिर कीवर्ड का उपयोग करके परिभाषित किया जा सकता है। एक वर्ग में स्थिर सदस्य सभी वर्ग वस्तुओं द्वारा साझा किया जाता है क्योंकि स्मृति में स्थिर वर्ग के सदस्य की केवल एक प्रति होती है, चाहे कक्षा की वस्तुओं की संख्या कितनी भी हो। स्टैटिक क्लास मेंबर को शून्य से इनिशियला