Structures in C++
Structure क्या है?
Structure संबंधित data के टुकड़ों को — संभवतः अलग types के — एक नाम के तहत समूहित करता है। एक student के नाम, roll number और marks के लिए अलग variables के बजाय, आप उन्हें एक Student value में बाँध देते हैं।
struct परिभाषित करना
struct Student {
string name;
int roll;
double marks;
}; // semicolon dhyan deinयह Student नामक एक नया type परिभाषित करता है। Members इसके अंदर के variables हैं।
बनाना और access करना
struct type का variable बनाएँ और dot operator से इसके members तक पहुँचें:
#include <iostream>
using namespace std;
struct Student { string name; int roll; double marks; };
int main() {
Student s;
s.name = "Amit";
s.roll = 12;
s.marks = 88.5;
cout << s.name << " (" << s.roll << "): " << s.marks << "\n";
return 0;
}Amit (12): 88.5
आप एक साथ भी initialise कर सकते हैं: Student s = {"Amit", 12, 88.5};। Pointer के साथ, arrow इस्तेमाल करें: p->name।
Structs का array
कई records रखना आसान है — struct का array बनाएँ:
Student list[2] = {{"Amit", 1, 90}, {"Riya", 2, 95}};
for (int i = 0; i < 2; i++)
cout << list[i].name << " " << list[i].marks << "\n";| Step | i ki value | Condition | Kya hua | i ab |
|---|---|---|---|---|
| 1 | 0 | 0 < 2 → true | loop body chalta hai | i → 1 |
| 2 | 1 | 1 < 2 → true | loop body chalta hai | i → 2 |
| 3 | 2 | 2 < 2 → false | Condition false — loop yahin ruk gaya (STOP) | — |
Amit 90
Riya 95
Functions के साथ structs
Struct को function को भेजें — बड़े को copy से बचाने को const reference द्वारा:
void printStudent(const Student &s) {
cout << s.name << ": " << s.marks << "\n";
}struct बनाम class
| struct | class | |
|---|---|---|
| Default access | public | private |
| सामान्य इस्तेमाल | सादा data | Data + व्यवहार |
| Methods हो सकते हैं? | हाँ | हाँ |
एकमात्र भाषा अंतर default access है। व्यवहार और encapsulation के साथ आगे बढ़ने को classes और objects देखें।
आम गलतियाँ
- struct के closing brace के बाद semicolon भूलना।
- Pointer पर
->के बजाय.इस्तेमाल करना। - बड़े structs को value से copy करना जब
constreference बेहतर है। - struct members को private मानना — वे default रूप से public हैं।
title, author और price वाला एक Book struct परिभाषित करें। तीन books का array बनाएँ, उन्हें पढ़ें, और सबसे महँगी print करें।
सारांश
- struct अलग types के संबंधित data को एक नाम के तहत समूहित करता है।
- Members को dot operator से access करें (या pointer के ज़रिए
->)। - Structs के arrays एक ही आकार के कई records रखते हैं।
- Copies से बचने को structs को functions को
constreference द्वारा भेजें। - struct और class केवल default access में भिन्न हैं (public बनाम private)।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
C++ में structure क्या है?
struct से घोषित, अलग types के संबंधित variables को एक नाम के तहत समूहित करता है। जैसे एक Student struct एक नाम, roll number और marks को साथ रख सकता है, तो आप एक student को अलग variables के बजाय एक single value की तरह मान सकते हैं।C++ में struct के members कैसे access करते हैं?
s.name या s.marks। अगर आपके पास struct का pointer हो, आप इसके बजाय arrow operator इस्तेमाल करते हैं, जैसे p->name, जो (*p).name का संक्षिप्त रूप है।C++ में struct और class में क्या अंतर है?
क्या C++ में struct में functions हो सकते हैं?
C++ में structures का array कैसे बनाते हैं?
Student list[3];, और फिर हर element तथा उसके members को साथ access करते हैं, जैसे list[0].name। यह एक ही आकार के कई records रखने के लिए काम आता है, जैसे students की सूची।