C++ की मूल अवधारणाएँ: एक शुरुआती गाइड
C++ एक शक्तिशाली प्रोग्रामिंग भाषा है जो इसकी दक्षता, नियंत्रण और बहुमुखी प्रतिभा के लिए जानी जाती है। यह विभिन्न प्रकार के सॉफ्टवेयर, जैसे कि ऑपरेटिंग सिस्टम, गेम, एम्बेडेड सिस्टम और डेटाबेस को विकसित करने के लिए उपयोग की जाती है।
इस गाइड में, हम C++ की मूल अवधारणाओं को समझेंगे जो आपको इस भाषा सीखने की शुरुआत करने में मदद करेगी।
1. हेलो वर्ल्ड
प्रत्येक प्रोग्रामिंग भाषा सीखने का सबसे पहला कदम होता है "हेलो वर्ल्ड" प्रोग्राम लिखना। C++ में, यह इस तरह दिखता है:
#include
int main() {
std::cout << "हेलो वर्ल्ड!" << std::endl;
return 0;
}
विश्लेषण:
#include <iostream>
: यह लाइन "iostream" नामक एक हेडर फ़ाइल को शामिल करती है, जो इनपुट/आउटपुट स्ट्रीम से संबंधित कार्यों को प्रदान करता है।int main()
: यह प्रोग्राम का प्रवेश बिंदु है, जहां निष्पादन शुरू होता है।std::cout << "हेलो वर्ल्ड!" << std::endl;
: यह लाइन कंसोल पर "हेलो वर्ल्ड!" प्रदर्शित करती है।return 0;
: यह लाइन प्रोग्राम को सफलतापूर्वक पूरा होने का संकेत देता है।
2. चर और डेटा प्रकार
चर एक मेमोरी लोकेशन को संदर्भित करते हैं जो एक विशेष प्रकार के डेटा को संग्रहीत करता है। C++ में कई तरह के डेटा प्रकार उपलब्ध हैं, जैसे:
int
: पूर्णांक संख्याओं (जैसे 10, -5, 0) के लिएfloat
: फ्लोटिंग-पॉइंट संख्याओं (जैसे 3.14, -2.5) के लिएdouble
: उच्च परिशुद्धता वाले फ्लोटिंग-पॉइंट संख्याओं के लिएchar
: एकल वर्ण (जैसे 'A', 'b', '9') के लिएbool
: बूलियन मान (सही या गलत, 1 या 0) के लिए
चर घोषित करने के लिए, हम डेटा प्रकार का नाम, उसके बाद चर का नाम लिखते हैं:
int age = 25;
float height = 1.75;
char initial = 'J';
bool isStudent = true;
3. ऑपरेटर
ऑपरेटर विभिन्न प्रकार के कार्यों को करने के लिए उपयोग किए जाते हैं, जैसे कि गणना, तुलना, असाइनमेंट और लॉजिकल ऑपरेशन। कुछ सामान्य ऑपरेटर हैं:
- अंकगणितीय ऑपरेटर:
+
,-
,*
,/
,%
- तुलना ऑपरेटर:
==
,!=
,>
,<
,>=
,<=
- असाइनमेंट ऑपरेटर:
=
- तार्किक ऑपरेटर:
&&
,||
,!
उदाहरण के लिए:
int sum = 10 + 5; // योग
bool isGreater = 10 > 5; // तुलना
int x = 10; // असाइनमेंट
bool isTrue = true && false; // तार्किक ऑपरेशन
4. नियंत्रण संरचनाएं
नियंत्रण संरचनाएँ हमें प्रोग्राम के निष्पादन के प्रवाह को नियंत्रित करने की अनुमति देती हैं। कुछ महत्वपूर्ण नियंत्रण संरचनाएँ हैं:
if
: एक शर्त के आधार पर एक ब्लॉक को निष्पादित करने के लिएelse
: यदिif
की शर्त सत्य नहीं है तो एक ब्लॉक को निष्पादित करने के लिएelse if
: कई शर्तों को जांचने के लिएswitch
: कई मामलों में से एक को चुनने के लिएfor
: एक लूप को निर्दिष्ट संख्या में बार चलाने के लिएwhile
: एक शर्त सत्य रहने तक एक लूप को चलाने के लिएdo while
: कम से कम एक बार एक लूप को चलाने के लिए
उदाहरण के लिए:
if (age >= 18) {
std::cout << "आप वयस्क हैं।" << std::endl;
} else {
std::cout << "आप वयस्क नहीं हैं।" << std::endl;
}
for (int i = 0; i < 5; i++) {
std::cout << i << std::endl;
}
5. फ़ंक्शन
फ़ंक्शन कोड के पुन: प्रयोज्य भाग होते हैं जो विशिष्ट कार्यों को निष्पादित करते हैं। वे प्रोग्राम को व्यवस्थित करने और कोड को पुन: उपयोग करने की अनुमति देते हैं।
फ़ंक्शन घोषित करने के लिए, हम फ़ंक्शन का नाम, उसके रिटर्न प्रकार और पैरामीटर लिखते हैं:
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(10, 5);
std::cout << result << std::endl; // 15
return 0;
}
6. एरे
एरे एक ही प्रकार के डेटा के संग्रह को संग्रहीत करने का एक तरीका है। एरे के प्रत्येक सदस्य को एक सूचकांक द्वारा पहुँचा जा सकता है।
एरे घोषित करने के लिए, हम डेटा प्रकार, एरे का नाम और उसके आकार को बताते हैं:
int numbers[5];
numbers[0] = 10;
numbers[1] = 20;
for (int i = 0; i < 5; i++) {
std::cout << numbers[i] << std::endl;
}
7. स्ट्रिंग्स
स्ट्रिंग वर्णों की एक अनुक्रम होती है। C++ में, हम std::string
क्लास का उपयोग करके स्ट्रिंग का प्रतिनिधित्व करते हैं।
std::string name = "जॉन";
std::cout << name << std::endl; // जॉन
std::string message = "नमस्ते, ";
message += name; // name को message में जोड़ना
std::cout << message << std::endl; // नमस्ते, जॉन
8. पॉइंटर्स
पॉइंटर मेमोरी में एक लोकेशन का पता संग्रहीत करते हैं। वे हमें सीधे मेमोरी को एक्सेस करने और डेटा को कुशलतापूर्वक संसाधित करने की अनुमति देते हैं।
पॉइंटर घोषित करने के लिए, हम डेटा प्रकार, एक तारांकन चिह्न (*) और चर का नाम लिखते हैं:
int x = 10;
int *ptr = &x; // ptr को x का पता असाइन करना
std::cout << ptr << std::endl; // x का पता
std::cout << *ptr << std::endl; // x का मान
9. क्लास और ऑब्जेक्ट्स
क्लास एक ब्लूप्रिंट है जो ऑब्जेक्ट बनाने के लिए उपयोग किया जाता है। ऑब्जेक्ट क्लास का एक उदाहरण होता है।
क्लास बनाने के लिए, हम class
कीवर्ड का उपयोग करते हैं, उसके बाद क्लास का नाम और कर्ली ब्रेसिज़ के भीतर इसके डेटा सदस्य और फ़ंक्शन सदस्य होते हैं।
class Student {
public:
std::string name;
int age;
void display() {
std::cout << "नाम: " << name << std::endl;
std::cout << "आयु: " << age << std::endl;
}
};
int main() {
Student s1;
s1.name = "रिया";
s1.age = 20;
s1.display();
return 0;
}
10. इनहेरिटेंस
इनहेरिटेंस हमें मौजूदा क्लास से नई क्लास बनाने की अनुमति देता है। नई क्लास (उत्तराधिकारी) मूल क्लास (माता-पिता) के सभी गुणों और कार्यों को प्राप्त करती है।
class Vehicle {
public:
std::string model;
};
class Car: public Vehicle {
public:
std::string color;
};
int main() {
Car myCar;
myCar.model = "मारुति";
myCar.color = "लाल";
std::cout << "मॉडल: " << myCar.model << std::endl;
std::cout << "रंग: " << myCar.color << std::endl;
return 0;
}
यह गाइड C++ की कुछ मूल अवधारणाओं का एक संक्षिप्त अवलोकन प्रदान करता है। जैसे-जैसे आप इस भाषा सीखते जाते हैं, आप अधिक जटिल अवधारणाओं, जैसे पॉलीमॉर्फिज्म, टेम्प्लेट, अपवाद हैंडलिंग और बहुत कुछ सीखेंगे।