initializer lists c
विस्तार से C ++ में प्रारंभिक सूचियों के बारे में विस्तार से देखें।
C ++ डेटा सदस्यों को उनके मानों को आरंभ करने के लिए इनिशलाइज़र सूचियों का उपयोग करता है।
शुरुआती सूचियों का उपयोग ज्यादातर विशिष्ट स्थितियों में किया जाता है जहां निर्माणकर्ता निकाय में मूल्यों को शुरू करना संभव नहीं है।
वायरलेस राउटर पर सुरक्षा कुंजी क्या है
=> फ्री सी ++ कोर्स के लिए यहां क्लिक करें।
प्रारंभिक सूचियाँ C ++ में
प्रारंभिक सूची का सामान्य सिंटैक्स है:
constructorName(type value1, type value2):datamember(value1), datamember(value2) { //constructor code }
इन स्थितियों में से कुछ जहां शुरुआती सूची का उपयोग किया जाता है, नीचे सूचीबद्ध हैं:
# 1) डिफॉल्ट कंस्ट्रक्टर सदस्य ऑब्जेक्ट क्लास के लिए प्रदान नहीं किया जाता है।
जब हमारे पास क्लास के सदस्य के रूप में एक और क्लास ऑब्जेक्ट होता है और उस ऑब्जेक्ट का क्लास डिफॉल्ट कंस्ट्रक्टर नहीं होता है, तो हम इनिशियलाइज़र लिस्ट का उपयोग करके इस डेटा मेंबर ऑब्जेक्ट को इनिशियलाइज़ करते हैं।
यह निम्नलिखित कार्यक्रम में दिखाया गया है।
#include using namespace std; class A { int i; public: A(int ); }; A::A(int val) { i = val; cout << 'Constructor ::A ; i = ' << i << endl; } class B { A a; public: B(int ); }; B::B(int val):a(val) { cout << 'Constructor :: B'; } int main() { B obj(10); return 0; }
आउटपुट:
कंस्ट्रक्टर :: ए; मैं = १०
कंस्ट्रक्टर :: बी
उपरोक्त कार्यक्रम में, क्लास ए का उद्देश्य कक्षा बी का डेटा सदस्य है। क्लास ए में, हमारे पास एक पैरामीटराइज्ड कंस्ट्रक्टर है, लेकिन डिफॉल्ट कंस्ट्रक्टर नहीं है। इस प्रकार हमें क्लास ए में ऑब्जेक्ट बनाने के लिए क्लास बी में इनिशियलाइज़र लिस्ट का इस्तेमाल करना होगा।
# 2) प्रारंभिक सी हमारे डेटा सदस्य।
चूंकि कास्ट डेटा सदस्यों को केवल एक बार ही आरंभ किया जा सकता है, हम उन्हें इनिशियलाइज़र सूची का उपयोग करके आरंभ करते हैं।
हम निम्न उदाहरण का उपयोग करके इसे प्रदर्शित करते हैं।
#include using namespace std; class sample { private: const int val; public: sample(int val):val(val) { cout << 'Value is ' << val; } }; int main() { sample obj(10); }
आउटपुट:
मान 10 है
उपरोक्त कार्यक्रम में, हमारे पास डेटा सदस्य के रूप में एक कास्ट है। अगर हमें इस कॉन्स्टेबल मेंबर को इनिशियलाइज़ करना है, तो हम इसे इनिशियलाइज़र लिस्ट का इस्तेमाल करते हैं।
# 3) प्रारंभिक संदर्भ डेटा प्रकारों के लिए।
जैसे स्थिरांक संदर्भ अपरिवर्तनीय हैं। इसलिए जब भी हमें संदर्भ प्रकार के डेटा सदस्यों को इनिशियलाइज़ करने की आवश्यकता होती है, हम इनिशलाइज़र सूची का उपयोग करते हैं।
निम्नलिखित कार्यक्रम में, हम इनिशियलाइज़र सूची का उपयोग करके संदर्भ डेटा सदस्य को इनिशियलाइज़ करते हैं।
#include using namespace std; class sample { private: int &ref_val; public: sample(int &ref_val):ref_val(ref_val) { cout << 'Value is ' << ref_val; } }; int main() { int ref=10; sample obj(ref); return 0; }
आउटपुट:
मान 10 है
इस कार्यक्रम में, हमारे पास डेटा सदस्य के रूप में एक संदर्भ है और हम इसे इनिशियलाइज़र सूची का उपयोग करके आरंभ करते हैं।
# 4) जब सदस्य का नाम और पैरामीटर समान नाम हो।
एंड्रॉइड फोन के लिए सबसे अच्छा संगीत डाउनलोडर क्या है
जब किसी वर्ग के सदस्य नामों को मापदंडों के साथ आरंभ किया जाता है और इन मापदंडों में सदस्य नाम के समान नाम होते हैं, तो हम आरंभक सूची का उपयोग करते हैं। हमारे पिछले विषयों में, हमने उसी स्थिति के लिए इस सूचक का उपयोग किया था। दूसरा विकल्प इनिशियलाइज़र सूची है।
हमने निम्न प्रोग्राम में इनिशियलाइज़र सूची का उपयोग करने के लिए इस सूचक के साथ उपरोक्त उदाहरण को संशोधित किया है।
#include using namespace std; class Sample { private: int num; char ch; public: Sample(int num,char ch):num(num),ch(ch){ cout<<'num = '< आउटपुट:
संख्या = १००
ch = A

इस कार्यक्रम में, हम समान नाम वाले डेटा सदस्यों को आरंभ करने के लिए पैरामीटर पास करते हैं। इस मामले में, हम इस उद्देश्य के लिए इनिशलाइज़र सूची का उपयोग करते हैं।
# 5) प्रदर्शन में सुधार करने के लिए
हर बार जब हम कंस्ट्रक्टर के शरीर में डेटा सदस्यों को इनिशियलाइज़ करते हैं, तो वैल्यू असाइन करते समय डेटा मेंबर के लिए एक अस्थायी ऑब्जेक्ट बनाया जाता है। असाइनमेंट हो जाने के बाद, यह अस्थायी ऑब्जेक्ट हटा दिया जाता है। यह वास्तव में एक उपरि है।
यदि हम इनिशलाइज़र सूची का उपयोग करते हैं, तो दूसरी ओर, एक कॉपी कंस्ट्रक्टर का उपयोग मूल्यों को निर्दिष्ट करने के लिए किया जाता है। इससे प्रदर्शन में काफी सुधार होता है।
निष्कर्ष
इस प्रकार इस ट्यूटोरियल में, हमने शुरुआती सूचियों के साथ-साथ कई स्थितियों के बारे में सीखा है जिसमें हमें उन्हें C ++ प्रोग्रामिंग में उपयोग करने की आवश्यकता होती है।
हालाँकि हमें इन परिस्थितियों के मौजूद नहीं होने पर इनिशियलाइज़र सूची का उपयोग करने की आवश्यकता नहीं है, हम हमेशा प्रोग्राम के प्रदर्शन को बेहतर बनाने के लिए उनका उपयोग कर सकते हैं।
हमारे आगामी ट्यूटोरियल में, हम C ++ में मित्र कार्यों पर विस्तार से चर्चा करेंगे।
=> पूर्ण सी ++ ट्यूटोरियल सूची देखने के लिए यहां देखें।
अनुशंसित पाठ