C++ में, डेटा प्रकार वे लेबल हैं जो यह बताते हैं कि एक वेरिएबल किस प्रकार के मान रख सकता है और उन मानों पर कौन से ऑपरेशन किए जा सकते हैं। C++ में डेटा प्रकारों को दो श्रेणियों में विभाजित किया जाता है: प्रिमिटिव और नॉन-प्रिमिटिव।
प्रिमिटिव डेटा प्रकार वे हैं जो सीधे डेटा मानों को स्टोर करते हैं, जैसे इंट, फ्लोट, चार, बूलियन, आदि। ये डेटा प्रकार पूर्वनिर्धारित होते हैं और C++ भाषा का हिस्सा होते हैं।
नॉन-प्रिमिटिव डेटा प्रकार वे हैं जो ऑब्जेक्ट या जटिल डेटा संरचनाओं को संदर्भित करते हैं, जैसे स्ट्रिंग, क्लास, एरे, पॉइंटर, इंटरफेस, रेफरेंस, आदि। ये डेटा प्रकार प्रोग्रामर द्वारा बनाए जाते हैं और वे पूर्वनिर्धारित नहीं होते हैं।
इस ब्लॉग में, हम C++ में नॉन-प्रिमिटिव डेटा प्रकारों के बारे में विस्तार से जानेंगे। हम उनकी परिभाषा, उदाहरण, उपयोग और फायदे को समझेंगे।
![]() |
-प्रिमिटिव डेटा प्रकार (Non-primitive data types) Hindi |
स्ट्रिंग एक नॉन-प्रिमिटिव डेटा प्रकार है जो एक या अधिक वर्णों का समूह होता है। स्ट्रिंग को डबल कोट्स (" ") के अंदर लिखा जाता है। स्ट्रिंग का प्रयोग टेक्स्ट डेटा को स्टोर और प्रदर्शित करने के लिए किया जाता है।
स्ट्रिंग एक ऑब्जेक्ट है जो C++ में एक बिल्ट-इन क्लास है। इसका मतलब है कि स्ट्रिंग के साथ कई मेथड और प्रॉपर्टी उपलब्ध होते हैं जिनका प्रयोग हम अपने काम के लिए कर सकते हैं।
उदाहरण के लिए, हम निम्नलिखित तरीके से एक स्ट्रिंग वेरिएबल बना सकते हैं:
string name = "Dear Coder";
यहां, name एक वेरिएबल है जिसका डेटा प्रकार string है और जिसका मान “Dear Coder” है। यहां, हमने वेरिएबल के मान को डबल कोट्स (" ") के अंदर लिखा है।
एक वेरिएबल एक नाम है जो किसी डेटा को संदर्भित करता है। एक डेटा प्रकार एक वेरिएबल के लिए उपयोग किए जाने वाले डेटा के प्रकार को निर्धारित करता है। एक string एक नॉन-प्रिमिटिव डेटा प्रकार है जो एक या अधिक वर्णों का समूह होता है।
क्लास एक नॉन-प्रिमिटिव डेटा प्रकार है जो एक ऑब्जेक्ट को परिभाषित करता है। एक ऑब्जेक्ट एक डेटा का संग्रह है जिसमें वेरिएबल और फंक्शन होते हैं। वेरिएबल ऑब्जेक्ट की विशेषताओं को स्टोर करते हैं, जबकि फंक्शन ऑब्जेक्ट की कार्यक्षमताओं को प्रदर्शित करते हैं।
क्लास का प्रयोग ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) में किया जाता है। OOP एक प्रोग्रामिंग पैराडाइम है जिसमें डेटा और बिहेवियर को एक साथ बंधन में रखा जाता है। OOP के फायदे हैं कि यह कोड को आसानी से रीयूज़, टेस्ट, डिबग, और मेंटेन करने में मदद करता है।
C++ में, क्लास को निम्नलिखित तरीके से बनाया जाता है:
int x;
string y;
// member functions
void display() {
cout << "x = " << x << endl;
cout << "y = " << y << endl;
}
};
यहां, `ClassName` क्लास का नाम है। `public` एक एक्सेस स्पेसिफायर है जो यह निर्धारित करता है कि क्लास के बाहर कौन से डेटा मेंबर और मेंबर फंक्शन उपयोग किए जा सकते हैं। `x` और `y` डेटा मेंबर हैं जो वेरिएबल हैं। `display()` एक मेंबर फंक्शन है जो एक एक्शन करता है।
#include <iostream>
Using namespace std;
int main() {
// एक पूर्णांक एरे बनाएं
int myArray[5] = {10, 20, 30, 40, 50};
// एरे का उपयोग करके डेटा प्रिंट करें
for(int i = 0; i < 5; ++i) {
cout << "सूची में स्थान" << i << ": " << myArray[i] <<endl;
}
return 0;}
पॉइंटर वह variable है जो किसी दूसरे variable के address को स्टोर करता है। पॉइंटर का प्रयोग करके हम मेमोरी में स्टोर की गयी वैल्यू को एक्सेस या मॉडिफाई कर सकते हैं। पॉइंटर को डिक्लेअर करने के लिए हम डाटा टाइप के बाद एक एस्टेरिस्क (*) लगाते हैं। पॉइंटर को इनिशियलाइज करने के लिए हम एड्रेस ऑफ (&) ऑपरेटर का प्रयोग करते हैं।
int x = 10; // एक नॉर्मल वेरिएबल
int *p; // एक पॉइंटर वेरिएबल
p = &x; // पॉइंटर को नॉर्मल वेरिएबल का एड्रेस असाइन करते हैं
cout << "x का वैल्यू है " << x << endl; // x का वैल्यू प्रिंट करते हैं
cout << "x का एड्रेस है " << &x << endl; // x का एड्रेस प्रिंट करते हैं
cout << "p का वैल्यू है " << p << endl; // p का वैल्यू प्रिंट करते हैं, जो x का एड्रेस है
cout << "p का एड्रेस है " << &p << endl; // p का एड्रेस प्रिंट करते हैं, जो अलग है x के एड्रेस से
cout << "p के द्वारा point किया गया वैल्यू है " << *p << endl; // p के द्वारा point किया गया वैल्यू प्रिंट करते हैं, जो x का वैल्यू है
x का वैल्यू है 10
x का एड्रेस है 0x7fffbf9a8cfc
p का वैल्यू है 0x7fffbf9a8cfc
p का एड्रेस है 0x7fffbf9a8d00
p के द्वारा point किया गया वैल्यू है 10
इंटरफ़ेस (interface) एक ऐसा डिज़ाइन है जो एक क्लास के लिए व्यवहार और क्षमताओं को परिभाषित करता है। इंटरफ़ेस में केवल विधियों के नाम और पैरामीटर होते हैं, लेकिन उनका कोई शरीर या डिफ़ॉल्ट वाल्यू नहीं होता है। इंटरफ़ेस का उपयोग एक क्लास को एक या अधिक इंटरफ़ेस को लागू करने के लिए किया जाता है। इससे कोड को अधिक फ्लेक्सिबल और रियूज़बल बनाया जाता है।
रेफरेंस (reference) C++ में एक ऐसा वेरिएबल है, जो किसी अन्य वेरिएबल का उपनाम (alias) होता है। रेफरेंस का उपयोग वेरिएबल को एक और नाम देने या वेरिएबल को फ़ंक्शन में पारित करने के लिए किया जाता है। रेफरेंस को डिक्लेअर करते समय, उसे एक वेरिएबल के साथ जोड़ा जाता है, और उसके बाद वे दोनों एक ही मेमोरी लोकेशन को साझा करते हैं। रेफरेंस को एम्परसैंड (&) चिह्न के साथ डिफ़ाइन किया जाता है।
उदाहरण के लिए, निम्न कोड में, x और y दो वेरिएबल हैं, जिनमें 10 और 20 स्टोर हैं। फिर, r1 और r2 दो रेफरेंस हैं, जो x और y को रेफर करते हैं। इसके बाद, जब हम r1 और r2 के मान को बदलते हैं, तो x और y के मान भी बदल जाते हैं, क्योंकि वे एक ही मेमोरी लोकेशन को शेयर करते हैं।
#include <iostream>
using namespace std;
int main() {
// दो वेरिएबल x और y
int x = 10;
int y = 20;
// दो रेफरेंस r1 और r2
int &r1 = x;
int &r2 = y;
// रेफरेंस के मान को बदलना
r1 = 15;
r2 = 25;
// वेरिएबल के मान को प्रिंट करना
cout << "x = " << x << endl; // x = 15
cout << "y = " << y << endl; // y = 25
return 0;
}
आशा है कि आपको यह ब्लॉग पसंद आया होगा। अगर आपको कोई सवाल है तो आप मुझसे पूछ सकते हैं। मैं आपकी मदद करने की कोशिश करूंगा।
धन्यवाद 😊