Parameterized Constructor in C++

Parameterized Constructor in C++: यहां हम एक ऐसा Program बना रहे हैं, जिसमें हर Object को Declare करते समय ही विभिन्न प्रकार के मान Initialize किए जा सकते हैं।

हम किसी Constructor को कई तरीकों (No-Argument, One-Argument, Two-Argument, Multi-Argument ) से Create कर सकते हैं। लेकिन सबसे पहले हम Two-Argument Constructor को Use करना समझेंगे।

हमने पिछले अध्‍याय में एक TTime Class Create किया था। उसी Class में हम कुछ Modification कर रहे हैं, जो निम्नानुसार है:

// Program
#include <iostream.h>
class TTime
{
	private:
		int hours;      // 0 to 23
		int minutes;    // 0 to 59

	public:     		// two-Argument Constructor
		TTime(int h, int m) : hours(h), minutes(m) {}

		void display()	//Member function
		{
			cout <<"\n" << hours << ':' << minutes;
		}
};

void main()
{
	TTime Time1(12, 54);	// initialize Time1

	cout << "\n Time1 = ";
	Time1.display();        // display Time1
}

// Output
	Time1 = 12:54

इस Class व उसके Implementation को देख कर आप समझ गए होंगे, कि अब हम इस Class के जितने भी Object Declare करेंगे, हम उनमें अपनी जरूरत के अनुसार अलग-अलग मान Initialize कर सकते हैं। हम ऐसा इसलिए कर सकते हैं, क्योंकि इस TTime Class में hoursminutes दो Data Members हैं, इसलिए इन दोनों को Initialize करने के लिए हमें 2-Argument Constructor की जरूरत है।

Constructor Function भी Argument के साथ उसी प्रकार काम करता है, जिस प्रकार से कोई अन्‍य Member Function या Standalone Function करता है। यानी Object के Create होते ही Constructor Execute होता है और Constructor Function के Argument h का मान Object के Data Member hours को व Argument m का मान Object के Data Member minutes को प्राप्त हो जाता है। हालांकि यदि हम चाहें तो इस Constructor को निम्नानुसार भी लिख सकते हैं:

TTime(int h, int m)
{
    hours = h;
    minutes = m;
}

लेकिन ये एक गलत तरीका है, क्योंकि Assignment को Initialization के स्थान पर Use नहीं किया जा सकता है। सही तरीका वही है जो हमने TTime Class में Use किया है। हम इस लम्बे Statement को निम्नानुसार भी लिख सकते हैं:

    TTime(int h, int m) :
        hours(h), minutes(m) { }

इस तरह से लिखने पर भी Constructor के Execution व काम पर कोई फर्क नहीं पडेगा। चूंकि Constructors Automatically तब Call होते हैं, जब हम कोई Object Create करते हैं। इसलिए हम Constructors को किसी सामान्‍य Member Function की तरह Object के Reference के साथ Call नहीं कर सकते हैं।

Constructor को Call करने का तरीका यही है कि हम Object को Declare करते समय ही उसे कोई मान Initialize करें। यदि हम ऐसा करते हैं, तो Constructor Call हो जाता है। जैसे:

TTime Time1(10, 20);

ये Statement Time1 नाम का एक Object Create करता है। Object के Create होते ही चूंकि इस Object में दो Arguments प्रदान किए जा रहे हैं, इसलिए 2-Arguments Constructor Call होता है। ये 2-Arguments Constructor Object Time1 के hours व minutes Data Members को 10 व 20 मान प्रदान कर देता है।

हम देख सकते हैं कि ये Declaration एक Function Call करने के समान दिखाई दे रहा है। लेकिन ये Function Call नहीं है बल्कि एक Object की Definition है। ये Statement एक TTime Class का Time1 Object Create करता है और उसके hours Data Member को 10 व minutes Data Member को 20 Initialize करता है। (Parameterized Constructor in C++ – Wiki)

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