-
C और C++ में main() को क्या वापस करना चाहिए?
main() का रिटर्न मान C और C++ में main() फ़ंक्शन का रिटर्न मान प्रोग्राम के निकास स्थिति को दर्शाता है। यह ऑपरेटिंग सिस्टम या पैरेंट प्रोसेस को बताता है कि प्रोग्राम सफलतापूर्वक समाप्त हुआ या त्रुटि के साथ। मानक रिटर्न मान 0 (EXIT_SUCCESS): सामान्य, सफल समाप्ति को दर्शाता है। गैर-शून्य (EXIT_FAIL
-
C और C++ में अनडिफाइंड, अनस्पेसिफाइड, और इम्प्लीमेंटेशन-डिफाइंड बिहेवियर में अंतर
अनडिफाइंड बिहेवियर (Undefined behavior) वह व्यवहार है जो C++ स्पेसिफिकेशन द्वारा परिभाषित नहीं है। उदाहरण के लिए, यदि आपके पास एक एक्सप्रेशन में मल्टीपल यूनरी इंक्रीमेंट/डिक्रीमेंट ऑपरेशन हैं जैसे i++ + ++i, तो उनका परिणाम व्यवहार में होता है जो परिभाषित नहीं है। यह केवल इस तथ्य के कारण है कि कुछ भा
-
C++ में सॉर्टेड सरणी को प्रोसेस करना अनसॉर्टेड सरणी से तेज क्यों होता है?
C++ में, सॉर्टेड सरणी को प्रोसेस करना अनसॉर्टेड सरणी से तेज होता है क्योंकि ब्रांच प्रेडिक्शन (branch prediction) के कारण। कंप्यूटर आर्किटेक्चर में, ब्रांच प्रेडिक्शन यह निर्धारित करता है कि प्रोग्राम के इंस्ट्रक्शन फ्लो में एक कंडीशनल ब्रांच (जंप) लिया जाने की संभावना है या नहीं। आइए एक उदाहरण लेते
-
C++ में सरणी (Arrays) का उपयोग कैसे करें?
एक सरणी एक ही प्रकार के तत्वों की एक श्रृंखला है जो सन्निहित मेमोरी स्थानों में रखी जाती है जिन्हें एक यूनिक आइडेंटिफायर में इंडेक्स जोड़कर व्यक्तिगत रूप से संदर्भित किया जा सकता है। C++ में सरणी का उपयोग करने के लिए, आपको पहले इसे घोषित करना होगा, उदाहरण के लिए, int arr[10]; यह आकार 10 की int प्रका
-
C++ में पॉइंटर वेरिएबल और रेफरेंस वेरिएबल में क्या अंतर है?
रेफरेंस (References) जब किसी वेरिएबल को रेफरेंस के रूप में घोषित किया जाता है, तो यह मौजूदा वेरिएबल के लिए एक वैकल्पिक नाम बन जाता है। सिंटैक्स Type &newname = existing name; इनिशियलाइज़ेशन Type &pointer; pointer = variable name; पॉइंटर्स (Pointers) पॉइंटर्स का उपयोग वेरिएबल के एड्रेस को स्ट
-
कॉपी एलिजन (Copy Elision) और रिटर्न वैल्यू ऑप्टिमाइज़ेशन (Return Value Optimization) क्या हैं?
कॉपी एलिजन अधिकांश कंपाइलर्स द्वारा लागू एक ऑप्टिमाइज़ेशन है जो कुछ स्थितियों में अतिरिक्त (संभावित रूप से महंगी) कॉपी को रोकता है। इसलिए यदि आपके पास कुछ कोड है जो उपयोग न होने वाले ऑब्जेक्ट्स बना रहा है या जिनके साइड इफेक्ट्स नहीं हैं, उदाहरण struct MyStruct { MyStruct() {} MyStruct(const
-
C/C++ में struct के लिए sizeof, प्रत्येक मेंबर के sizeof के योग के बराबर क्यों नहीं होता?
स्ट्रक्ट के लिए sizeof और उस स्ट्रक्ट के प्रत्येक मेंबर के sizeof के योग के बीच का अंतर बाइट पैडिंग और अलाइनमेंट के कारण होता है। C/C++ में हर डेटा टाइप की एक अलाइनमेंट आवश्यकता होती है। एक प्रोसेसर की अपनी आर्किटेक्चर की प्रोसेसिंग वर्ड लंबाई होती है। 32 बिट मशीन पर, प्रोसेसिंग वर्ड साइज 4 बाइट्स य
-
C/C++ में ऐरे डिके क्या है?
ऐरे और पॉइंटर्स C/C++ में काफी समान रूप से काम करते हैं। लेकिन कुछ सूक्ष्म अंतर हैं। उदाहरण के लिए, sizeof ऑपरेटर दोनों पर काफी अलग तरीके से काम करता है। जब आप किसी ऐरे को पॉइंटर में कन्वर्ट करते हैं, उदाहरण #include<iostream> int main() { const int a[] = { 2, 3, 5, 7, 11 }; &nb
-
C/C++ में फॉरवर्ड डिक्लेरेशन का उपयोग कब कर सकते हैं?
फॉरवर्ड डिक्लेरेशन डिक्लेरेशन के बाद के कोड को यह जानने देता है कि Person नाम की क्लासेस हैं। यह कंपाइलर को संतुष्ट करता है जब यह इन नामों को उपयोग होते देखता है। बाद में लिंकर क्लासेस की परिभाषा ढूंढ लेगा। उदाहरण Class Person; void myFunc(Person p1) { // ... } Class Person { &
-
स्मार्ट पॉइंटर क्या है और C++ में इसका उपयोग कब करना चाहिए?
स्मार्ट पॉइंटर एक क्लास है जो रॉ (या बेयर) C++ पॉइंटर को लपेटती है। इसका उपयोग उन रिसोर्सेज को प्रबंधित करने के लिए किया जाता है जिनकी ओर पॉइंटर इंगित करता है। उदाहरण के लिए, यदि उस मेमोरी स्थान का रेफरेंस खो जाता है। यह एक तरह से गार्बेज कलेक्टर की तरह कार्य करता है। कई स्मार्ट पॉइंटर टाइप्स हैं।
-
वर्तमान C या C++ स्टैंडर्ड डॉक्यूमेंट्स कहां मिल सकते हैं?
आप वर्तमान C स्टैंडर्ड डॉक्यूमेंट्स ANSI वेब स्टोर पर पा सकते हैं। https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012 आप वर्तमान C++ स्टैंडर्ड डॉक्यूमेंट्स खरीदने के लिए ISO C++ वेबसाइट पर पा सकते हैं: https://www.iso.org/standard/68564.html ISO C++ स्टैंडर्ड का वर्किंग ड्
-
C++ में static_cast, dynamic_cast, const_cast और reinterpret_cast का उपयोग कब करना चाहिए?
const_cast किसी वेरिएबल से const को हटाने या जोड़ने के लिए उपयोग किया जा सकता है। यह उपयोगी हो सकता है यदि किसी वेरिएबल से constness जोड़ना/हटाना आवश्यक हो। static_cast यह सामान्य/साधारण टाइप कन्वर्जन के लिए उपयोग किया जाता है। यह इम्प्लिसिट टाइप कोएरशन के लिए जिम्मेदार कास्ट भी है और इसे एक्सप्लि
-
C++ सिंगलटन डिज़ाइन पैटर्न समझाया गया
सिंगलटन डिज़ाइन पैटर्न एक सॉफ्टवेयर डिज़ाइन सिद्धांत है जिसका उपयोग क्लास के इंस्टेंटिएशन को एक ऑब्जेक्ट तक सीमित करने के लिए किया जाता है। यह तब उपयोगी होता है जब सिस्टम भर में कार्यों को समन्वयित करने के लिए ठीक एक ऑब्जेक्ट की आवश्यकता होती है। उदाहरण के लिए, यदि आप एक लॉगर का उपयोग कर रहे हैं जो
-
C++ पॉइंटर्स का उपयोग करके किसी भिन्न फ़ंक्शन से लोकल वेरिएबल को कैसे एक्सेस करें?
आप एक बार स्कोप से बाहर जाने के बाद लोकल वेरिएबल को एक्सेस नहीं कर सकते। लोकल वेरिएबल होने का यही अर्थ है। हालांकि, आइए एक ऐसे उदाहरण को देखें जहां आप एक लोकल वेरिएबल की मेमोरी को इसके स्कोप के बाहर एक्सेस करने में सक्षम हो सकते हैं। उदाहरण #include<iostream> int* foo() { int x
-
C++ में float और double की तुलना कैसे करें?
float और double वेरिएबल्स की तुलना इस बात पर निर्भर करती है कि आपका अंतिम लक्ष्य क्या है। यदि आप बहुत अधिक विवरण में जाए बिना एक रन करने योग्य फ़ंक्शन चाहते हैं और कुछ गलत गणनाओं में कोई समस्या नहीं होगी, तो आप निम्न फ़ंक्शन का उपयोग कर सकते हैं: उदाहरण #include<iostream> using namespace std
-
C/C++ में बिट को कैसे सेट, क्लियर, और टॉगल करें?
आप C, C++, Python, और अन्य सभी प्रोग्रामिंग भाषाओं में बिटवाइज़ ऑपरेटर्स का उपयोग करके बिट्स को सेट, क्लियर, और टॉगल कर सकते हैं जो इन ऑपरेशन्स को सपोर्ट करते हैं। आपको बिट को सही स्थान पर लाने के लिए बिटशिफ्ट ऑपरेटर का भी उपयोग करना होगा। बिट सेट करना बिट सेट करने के लिए, हमें बिटवाइज़ OR ऑपरेटर
-
C++ में CSV फाइलों को कैसे पढ़ें और पार्स करें?
आपको C++ में CSV फाइलों को पार्स करने के लिए वास्तव में एक लाइब्रेरी का उपयोग करना चाहिए क्योंकि ऐसे कई मामले हैं जिन्हें आप अपने आप फाइल पढ़ते समय मिस कर सकते हैं। C++ के लिए बूस्ट लाइब्रेरी CSV फाइलों को पढ़ने के लिए वास्तव में अच्छे टूल्स का एक सेट प्रदान करती है। उदाहरण के लिए, उदाहरण #include
-
C++ में स्ट्रिंग को टोकनाइज़ कैसे करें?
पहला तरीका शब्दों को स्पेस से अलग करके पढ़ने के लिए stringstream का उपयोग करना है। यह थोड़ा सीमित है लेकिन अगर आप उचित चेक प्रदान करते हैं तो यह कार्य काफी अच्छी तरह से करता है। उदाहरण #include <vector> #include <string> #include <sstream> using namespace std; int main() {
-
C/C++ में const int*, const int * const, और int const * में अंतर?
उपरोक्त प्रतीकों का अर्थ निम्नलिखित है: int* - int का पॉइंटर। यह काफी स्पष्ट है। int const * - const int का पॉइंटर। int * const - int का कॉन्स्ट पॉइंटर। int const * const - const int का कॉन्स्ट पॉइंटर। यह भी ध्यान दें कि: const int * और int const * समान हैं। const int * const और int const * const स
-
C++ में वर्चुअल डिस्ट्रक्टर्स का उपयोग कब करना चाहिए?
स्कॉट मेयर्स Effective C++ में कहते हैं: यदि किसी क्लास में कोई वर्चुअल फ़ंक्शन है, तो इसमें एक वर्चुअल डिस्ट्रक्टर होना चाहिए, और जिन क्लासेस को बेस क्लास के रूप में डिज़ाइन नहीं किया गया है या पॉलीमॉर्फिक रूप से उपयोग करने के लिए डिज़ाइन नहीं किया गया है, उन्हें वर्चुअल डिस्ट्रक्टर्स घोषित नहीं क