-
C++ में override कीवर्ड
फंक्शन ओवरराइडिंग C++ की सबसे आम विशेषता है। मूल रूप से फंक्शन ओवरराइडिंग का मतलब है एक फंक्शन को फिर से परिभाषित करना जो बेस क्लास में मौजूद है, उसे डेराइव्ड क्लास में भी परिभाषित किया जाए। इसलिए फंक्शन सिग्नेचर समान हैं लेकिन व्यवहार अलग होगा। लेकिन एक स्थिति हो सकती है जब कोई प्रोग्रामर उस फ़ंक्
-
C++ में Boost.Multiprecision द्वारा बड़े नंबर का फैक्टोरियल
C++ में बड़े नंबर्स का फैक्टोरियल कैलकुलेट करने के लिए Boost.Multiprecision लाइब्रेरी का cpp_int टाइप उपयोग करें। यह आर्बिट्ररी प्रिसिजन इंटीजर प्रदान करता है जो रनटाइम पर आवश्यकतानुसार बढ़ता है। उदाहरण कोड #include <iostream> #include <boost/multiprecision/cpp_int.hpp> using boost::mu
-
C++ में set, multiset, unordered_set, unordered_multiset का अंतर
C++ STL में चार सेट कंटेनर्स हैं, जिनमें ऑर्डरिंग, डुप्लिकेट हैंडलिंग, और आंतरिक कार्यान्वयन के आधार पर अंतर है। तुलना तालिका विशेषताsetmultisetunordered_setunordered_multiset ऑर्डरसॉर्टेड (Ascending)सॉर्टेड (Ascending)कोई ऑर्डर नहीं (हैश-आधारित)कोई ऑर्डर नहीं डुप्लिकेट्सनहींहांनहींहां कार्यान
-
C++ में बिल्ट-इन डेटा टाइप्स की वैध रेंज पार करने पर क्या होता है?
C++ में जब बिल्ट-इन डेटा टाइप्स की वैध रेंज से बाहर मान असाइन किया जाता है, तो व्यवहार टाइप पर निर्भर करता है: अनसाइन्ड टाइप्स रैप-अराउंड करते हैं (well-defined), जबकि साइन्ड टाइप्स अनडिफाइंड बिहेवियर (UB) दिखाते हैं। 1. अनसाइन्ड टाइप्स: Well-Defined Wraparound अनसाइन्ड इंटीजर्स मॉडुलो 2^N अंकगणित
-
C++ में Rule of Three (थ्री का नियम)
Rule of Three C++ में एक क्लास डिजाइन दिशानिर्देश है: यदि आपकी क्लास को निम्न में से किसी की स्पष्ट परिभाषा की आवश्यकता है, तो संभवतः तीनों की आवश्यकता होगी: कॉपी कंस्ट्रक्टर (Class(const Class&)) कॉपी असाइनमेंट ऑपरेटर (Class& operator=(const Class&)) डिस्ट्रक्टर (~Class()) क्यों? यदि क्लास किसी
-
C++ में कंस्ट्रक्टर कब कॉल होते हैं?
C++ में कंस्ट्रक्टर ऑब्जेक्ट के स्टोरेज ड्यूरेशन और लिंकेज के आधार पर अलग-अलग समय पर कॉल होते हैं। चार मुख्य श्रेणियां हैं: ग्लोबल, लोकल, स्टेटिक लोकल, और डायनामिक। 1. ग्लोबल ऑब्जेक्ट (Global Object) कब: main() में प्रवेश करने से पहले #include <iostream> using namespace std; class MyClass {
-
C++ स्टैंडर्ड के अनुसार int, long टाइप्स का साइज
C++ स्टैंडर्ड में int, long, long long के सटीक साइज निर्धारित नहीं हैं - केवल न्यूनतम रेंज दी गई है। वास्तविक साइज सिस्टम आर्किटेक्चर और ऑपरेटिंग सिस्टम पर निर्भर करता है। डेटा मॉडल्स मॉडलसिस्टमintlonglong longपॉइंटर ILP3232-bit Linux/Windows32-bit32-bit64-bit32-bit LP6464-bit Linux/macOS32-bi
-
C++ में POSIX कमांड एक्जीक्यूट करना और आउटपुट प्राप्त करना
C++ में सिस्टम कमांड एक्जीक्यूट करने और उसका आउटपुट प्राप्त करने के लिए popen() (POSIX) का उपयोग करें। system() केवल एग्जिट कोड लौटाता है, आउटपुट नहीं। विधि 1: popen() - आउटपुट पढ़ने के लिए #include <iostream> #include <cstdio> #include <memory> #include <string> using name
-
C++ में GCC द्वारा ऑटोमैटिक स्टैक ट्रेस जनरेट करना
Linux में GCC से कंपाइल किए गए C++ प्रोग्राम के क्रैश होने पर ऑटोमैटिक स्टैक ट्रेस प्राप्त करने के लिए backtrace() फंक्शन (<execinfo.h>) और सिग्नल हैंडलर का उपयोग करें। उदाहरण कोड #include <iostream> #include <execinfo.h> #include <signal.h> #include <cstdlib> #includ
-
C++ में रैंडम फ्लोट नंबर जनरेट करना
C++ में सीधे रैंडम फ्लोट जनरेट करने का कोई बिल्ट-इन फंक्शन नहीं है, लेकिन rand() या आधुनिक <random> लाइब्रेरी का उपयोग करके आसानी से बनाया जा सकता है। विधि 1: rand() का उपयोग (लेगेसी) #include <iostream> #include <cstdlib> #include <ctime> using namespace std; float random
-
C++ में static_cast vs C-स्टाइल कास्टिंग का अंतर
C++ में static_cast और C-स्टाइल कास्टिंग दोनों टाइप कन्वर्जन के लिए उपयोग होते हैं, लेकिन उनके व्यवहार और सुरक्षा में महत्वपूर्ण अंतर हैं। सिंटैक्स तुलना // C-स्टाइल कास्ट int x = (int)3.14; int* ptr = (int*)&someChar; // C++ static_cast int y = static_cast<int>(3.14); // int* ptr = static_
-
C++ में प्रोग्राम को मिलीसेकंड के लिए स्लीप करना
C++ में प्रोग्राम को निर्दिष्ट मिलीसेकंड के लिए स्लीप (पॉज) करने के कई तरीके हैं। आधुनिक C++ (C++11+) में <chrono> और <thread> का उपयोग करना सबसे अच्छा है। विधि 1: C++11 std::this_thread::sleep_for (सिफारिश) #include <iostream> #include <chrono> #include <thread> usin
-
C++ में यूनिकोड कैरेक्टर प्रिंट करना
C++ में यूनिकोड कैरेक्टर्स प्रिंट करने के लिए यूनिवर्सल कैरेक्टर नेम (UCN) \uXXXX (16-बिट) या \UXXXXXXXX (32-बिट) सिंटैक्स का उपयोग करें। सोर्स फाइल UTF-8 एन्कोडिंग में सेव होनी चाहिए। बेसिक सिंटैक्स \uXXXX // 16-बिट हेक्स (BMP कैरेक्टर्स) \UXXXXXXXX // 32-बिट हेक्स (सभी यूनिकोड) उदाहरण कोड
-
C++ में रनटाइम पर मेमोरी उपयोग प्राप्त करना (Linux)
Linux में C++ प्रोग्राम का रनटाइम मेमोरी उपयोग (वर्चुअल मेमोरी, रेजिडेंट सेट साइज) प्राप्त करने के लिए /proc/self/stat या /proc/self/status फाइल पढ़ें। विधि 1: /proc/self/stat पार्स करना #include <iostream> #include <fstream> #include <string> #include <unistd.h> using name
-
C++ में बूस्ट लाइब्रेरी द्वारा बड़ी संख्याएं हैंडल करना
C++ में बड़ी संख्याओं (बड़े इंटीजर, हाई प्रिसिजन फ्लोट) को हैंडल करने के लिए Boost.Multiprecision लाइब्रेरी का उपयोग करें। यह बिल्ट-इन टाइप्स (long long 64-बिट तक) की सीमा से आगे जाती है। मुख्य डेटा टाइप्स टाइपविवरणप्रिसिजन cpp_intआर्बिट्ररी प्रिसिजन इंटीजरअनलिमिटेड (रनटाइम पर) int128_tफिक्स्ड
-
C++ और Linux में मिलीसेकंड में समय प्राप्त करना
Linux में C++ का उपयोग करके मिलीसेकंड प्रिसिजन में समय मापने के लिए gettimeofday() (POSIX) या C++11 <chrono> लाइब्रेरी का उपयोग करें। विधि 1: gettimeofday() (POSIX, लेगेसी) #include <sys/time.h> #include <iostream> #include <unistd.h> using namespace std; int main() {
-
C++ में new के साथ और बिना ऑब्जेक्ट इंस्टेंशिएशन का अंतर
C++ में ऑब्जेक्ट को स्टैक पर (बिना new) या हीप पर (के साथ new) इंस्टेंशिएट किया जा सकता है। दोनों के महत्वपूर्ण अंतर हैं। तुलना तालिका पहलूबिना new (स्टैक)साथ new (हीप) मेमोरी लोकेशनस्टैकहीप लाइफटाइमस्कोप समाप्त होने पर ऑटोमैटिक नष्टमैन्युअली delete तक जीवित साइज सीमासीमित (~1-8 MB)बड़ी (उपलब्
-
Linux टर्मिनल में कलर्ड टेक्स्ट आउटपुट करना
Linux टर्मिनल में कलर्ड टेक्स्ट प्रिंट करने के लिए ANSI एस्केप कोड्स का उपयोग करें। ये कोड्स टर्मिनल द्वारा इंटरप्रेट किए जाते हैं और टेक्स्ट को कलरफुल बनाते हैं। बेसिक फॉर्मेट \033[STYLE;FOREGROUND;BACKGROUNDm YOUR TEXT \033[0m कलर कोड्स कलरफोरग्राउंडबैकग्राउंड Black3040 Red3141 Green3242 Ye
-
C++ कंपाइलर द्वारा उपयोग किए गए C++ स्टैंडर्ड वर्जन का पता लगाना
C++ में __cplusplus मैक्रो का उपयोग करके कंपाइलर द्वारा उपयोग किए जा रहे C++ स्टैंडर्ड वर्जन का पता लगाया जा सकता है। विभिन्न स्टैंडर्ड के लिए इसके मान अलग-अलग होते हैं। स्टैंडर्ड और __cplusplus मान C++ स्टैंडर्ड__cplusplus मान Pre-C++981 C++98199711L C++11201103L C++14201402L C++17201703L C++
-
C++ में कंसोल क्लियर करना
C++ में कंसोल स्क्रीन क्लियर करने के लिए प्लेटफॉर्म-विशिष्ट कमांड का उपयोग करना पड़ता है। Linux/Unix में clear और Windows में cls कमांड उपयोग होती है। Linux/Unix के लिए #include <iostream> #include <cstdlib> using namespace std; int main() { cout << Screen will be cleared in