C++ Structure

C++ Structure: Array का प्रयोग हम तब करते हैं जब हमें एक ही प्रकार के Data को एक Group के रूप में Use करना होता है। लेकिन जब हमें विभिन्न प्रकार के Data Items को एक Group के रूप में Use करना होता है, तब हमें Structures का प्रयोग करना पडता है। Structures का प्रयोग हम तब करते हैं जब हमें विभिन्न प्रकार के Data के साथ प्रक्रिया करनी होती है। लेकिन वे Data इतने महत्वपूर्ण नहीं होते कि उन्हें एक Class में Convert करके Use किया जाए।

C++” में Structures को Class के रूप में Modify कर लिया गया है लेकिन फिर भी कई ऐसी स्थितियां होती हैं जहां Structure महत्वपूर्ण भूमिका निभाते हैं। हालांकि हम चाहें तो Structure को Class के रूप में Convert करके Use कर सकते हैं। लेकिन फिर भी “C” या “C++” की Programming में Structure का अपना अलग ही महत्व है।

Windows की API Programming में Structures का विभिन्न रूपों में Microsoft Company ने बहुत प्रयोग किया है। हम सीधे ही एक उदाहरण द्वारा निम्नानुसार किसी Structure को Specify करने का तरीका देखते हैं:

	struct part
	{
		int modelnumber;
		int partnumber;
	float cost;
	};

struct एक Keyword है। इसके आगे लिखा गया नाम Structure का नाम होता है जिसे tag भी कहते हैं और Braces से एक Structure की Body को बन्द किया जाता है। जहां Structure की Body समाप्त होती है वहां पर Curly Brace बन्द करने के बाद Semicolon लगाना जरूरी होता है, जो कि Structure Definition का End बताता है।

Structure की इस Body में विभिन्न Data Types के विभिन्न Data Items हो सकते हैं। इन विभिन्न Data Items को Members कहा जाता है ठीक उसी प्रकार से जैसे किसी Array के विभिन्न Data Items को Elements कहा जाता है।

जैसाकि हम देख सकते हैं, Structure व Class दोनों के Definition में काफी समानता दिखाई दे रही है। फिर भी इन दोनों को काफी अलग तरीके से Use किया जाता है। सामान्‍य तौर पर एक Class में Data Members व Data को Access करने वाले Member Functions दोनों ही होते हैं, लेकिन एक Structure में केवल Data Members ही होते हैं।

हालांकि हम चाहें तो एक Class को उसी प्रकार से Use कर सकते हैं जिस प्रकार से एक Structure को करते हैं और एक Structure को भी उसी प्रकार से Use कर सकते हैं जिस प्रकार से एक Class को करते हैं। Class की तरह ही एक Structure का Specification वास्तव में Memory में कोई Space नहीं लेता है। ये Specification केवल ये Specify करता है कि जब एक Structure Create होगा तो वह किस तरह का दिखाई देगा।

 

Defining C++ Structure Variables

जिस तरह से हम किसी Class के Objects Create करते हैं उसी तरह से हम किसी Structure के Variables भी Create कर सकते हैं। हमने part नाम का जो Structure Define किया है, यदि हम चाहें तो उसके Variables निम्नानुसार Create कर सकते हैं:

part Part1, Part2;

हम चाहें तो एक अन्‍य तरीके से भी किसी Structure के Variables Create कर सकते हैं। इसमें Structure की Specification तैयार करने के बाद जहां Structure पर हम Curly Brace को बन्द करके Semi Colon का प्रयोग करते हैं, वहां Curly Brace व Semi Colon के बीच Variable का नाम दे सकते हैं। जैसे:

	Struct part
	{
		int modelnumber;
		int partnumber;
	float cost;
	}Part1, Part2;

चूंकि, Main Program व उसमें Use होने वाला कोई भी Function या User Define Function Structure प्रकार के Variables को Access कर सके, इसके लिए हमेंशा ये जरूरी होता है कि हम Structure की Specification को Main Program से बाहर यानी Global रखें।

 

Accessing C++ Structure Members

किसी Structure के Member को Use करने के लिए हमें DOT ( . ) Operator का प्रयोग करना पडता है ठीक उसी तरह से जैसे हम किसी Class के Objects के Member Functions को Access करते हैं। जैसे मानलो कि हम part Structure के Members को कोई मान देना चाहते हैं तो हम ये काम निम्नानुसार कर सकते हैं:

part Part1;                    	// create structure variable

cout << “Enter model number: ”
cin >> Part1.modelnumber;      	// access data member modelnumber in structure
cout << “Enter part number: "; 
cin >> Part1.partnumber;       	// access data member partnumber in structure
cout << “Enter cost: "; 
cin >> Part1.cost;             	// access data member cost in structure

 

Initializing C++ Structure Variables

किसी अन्‍य Data Type के Variable की तरह हम Structure के विभिन्न Data Members को भी Initialize कर सकते हैं। जैसे:

part Part1 = { 1010, 2121, 321.50};

चलिए, अब हम Structure Variables का एक Practical उदाहरण देखते हैं। हमने कुछ पहले एक Stack का Program बनाया था जिसमें एक Array में विभिन्न Data Items को Store किया गया था और एक Index number था जो Stack के Top को बताता था। ये दोनों Data किसी भी Stack के लिए जरूरी होते हैं इसलिए हम चाहें तो इन्हें एक Structure के रूप में निम्नानुसार Define कर सकते हैं:

	struct stackette               	// structure
	   {
	 	int arr[20];            // storage array
	  	int top;                // index of top of stack
	   };

अब हम इस Structure को एक Variable के रूप में Stack Class में Use कर सकते हैं। इस Structure का प्रयोग करके हम निम्नानुसार Class व Main Program Create कर सकते हैं:

// Program
#include <iostream.h>
struct stackette               		// structure
{
	int arr[20];              	// storage array
	int top;                    	// index of top of stack
};

class Stack                    		// class
{
	private:
	stackette st;            	// structure variable

	public:
	void init()              	// initialize index
	{
		st.top = -1;
	}
	void push(int var)       	// place an item on the stack
	{
		st.arr[++st.top] = var;
	}
	int pop()                	// remove an item from the stack
	{
		return st.arr[st.top--];
	}
};

#include <conio.h>
void main()
{
	Stack s1;                   	// create a stack object

	s1.init();                  	// initialize it
	s1.push(11);                	// push 3 items onto stack
	s1.push(12);
	s1.push(13);

	cout << s1.pop() << endl;  	// pop 3 items and display them
	cout << s1.pop() << endl;
	cout << s1.pop() << endl;
	getch();
}

इस Program में Main Program में हमने कोई परिवर्तन नहीं किया है। केवल Class में एक Structure प्रकार के Variable में Data को Store किया है और उसी में से Data को वापस Retrieve किया है। ये Structure विभिन्न Integers को Hold करता है और Stack के Top को Point करता है।

जब हम stackette नाम का ये Structure Create करते हैं और Stack Class में Data Member के रूप में इसका Variable Create करते हैं तो हमारी Class में केवल एक ही Data Member होता है जिसे हमें Manage करना होता है। Structure के Data Member को Access करने के लिए हमने निम्नानुसार DOT Operator का प्रयोग किया है:

st.top = -1;

और

st.arr[++st.top] = var;

 

C++ Structure versus Class

हमने पिछले Program में देखा कि किस प्रकार से किसी Class के एक Data Item के रूप में हम किसी Structure को Use कर सकते हैं। इस तरीके से देखें तो Structures व Class एक दूसरे से बिल्कुल अलग प्रकार के Concepts हैं।

हम कह सकते हैं कि एक Structure Data Items का एक Passive Group होता है जबकि एक Class Data Items व Member Function का Active Combination होता है। Classes का OOP में Structures की तुलना में काफी अधिक महत्व है क्योंकि इसे हम Real Life Problems के Solutions के रूप में Use करते हैं।

फिर भी, Structures व Classes दोनों के Syntax लगभग समान होते हैं। हम Class में Data Member की तरह Structures में Use कर सकते हैं। हम Member Functions को उसी तरह से किसी Structure में Use कर सकते हैं जिस तरह से किसी Class में करते हैं।

इसी तरह से हम किसी Class को Structure की तरह भी Use कर सकते हैं। Class व Structure में मुख्‍य अन्तर यही है कि Class के सभी Members Default रूप से Private होते हैं जबकि Structure के सभी Data Members Default रूप से Public होते हैं।

इसीलिए यदि Class के Member Functions को Public रखना हो, तो हम उसे Public Keyword के Statement के बाद लिखते हैं। एक Structure में हम सामान्‍य रूप से सभी Data Members को Public रखना चाहते हैं, इसलिए public Keyword का प्रयोग नहीं करते हैं।

 

enum and bool

हम एक नए प्रकार के Data Type को enum Keyword का प्रयोग करके भी Create कर सकते हैं और bool Keyword का प्रयोग करके ऐसे Variable Declare कर सकते हैं जिसमें केवल true या false Store हो।

CPP Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C++ Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C++ Programming Language in Hindi | Page: 666 | Format: PDF

BUY NOW GET DEMO REVIEWS