Const Variable – MUST Use to Protect Data

const variables in c++: ये “C++” का एक Keyword है। ध्‍यान दें कि हमने 20 को ऊपर बताए Statements में दो बार प्रयोग किया है। Array की Size के रूप में और Array में Store हो सकने वाले कुल Characters के रूप में जिन्हें हम cin.get() Function द्वारा Array में Store कर सकते हैं। ये दोनों मान समान होने जरूरी होते हैं। यदि ये दोनों समान ना हों तो get() Function से आने वाला Input Array को Overflow या Underflow कर सकता है। ये तय करने के लिए कि दोनों स्थानों पर इनका मान समान है ये जरूरी होता है कि हम एक Numeric Constant के स्थान पर हम निम्नानुसार एक Variable का प्रयोग करें-

	int size = 20;
	char name[size];
	cout <<”Enter Name";	//Enter “Kuldeep Mishra”
	cin.get(name, size);
	cout << name;		//Displays only “Kuldeep Mishra”

अब यदि हम size Variable का मान Change करते हैं तो दोनों स्थानों पर समान रूप से मान Change हो जाएगा। ये एक उचित तरीका है जिससे Array Underflow या Overflow नहीं होता। लेकिन किसी Array की Size को Program के Run Time में Change नहीं किया जा सकता है। इसलिए ये जरूरी है कि Array की Size एक Constant मान हो और किसी Variable के मान को Program में Constant बनाने के लिए हम const Keyword का प्रयोग करते हैं। इस Keyword का प्रयोग हम तब करते हैं जब हमें पूरे Program में किसी Variable का मान Change नहीं करना होता है। इसलिए ऊपर बताए गए Code Segments को हम निम्नानुसार लिख सकते हैं:

	cout << “Enter the Doctor Name: "; 
	cin >> d_name;                            // get a number
	cin.ignore(10,’\n’);
	cout << “Enter the patient's name: ”
	cin.get(name, SIZE);                     // get a string
	const int SIZE = 20;
	char name[SIZE];
	cout <<”Enter Name";	//Enter “Kuldeep Mishra”
	cin.get(name, SIZE);
	cout << name;		//Displays only “Kuldeep Mishra”

जब हम किसी Variable के मान को पूरे Program में Constant रखना चाहते हैं यानी जब हम किसी Variable को Constant बनाते हैं तब उस Variable को हम Capital Letters में लिखते हैं ताकि हमें ध्‍यान रहे कि वह Variable एक Constant है। चूंकि एक Constant Variable का मान पूरे Program में Change नहीं होता इसलिए Constant Variable को Create करते ही उसे Initialize किया जाना जरूरी होता है। “C” Language में हम इस काम को Preprocessor Directive #define का प्रयोग करके कर सकते थे। जैसे:

#define SIZE 20

इस Statement को हम “C++” में भी Use कर सकते हैं लेकिन इसका प्रयोग नहीं किया जाता है क्योंकि इसका प्रयोग करने पर कई तरह की समस्याओं का सामना करना पडता है। कई बार जब हम cin.get() व cin दोनों का प्रयोग करते हैं तब एक समस्या पैदा हो जाती है। जैसे मानलो:

cout << “Enter the patient's age: "; 
cin >> age;                                  	// get a number
cout << “Enter the patient's name: ”
cin.get(name, SIZE);                         	// get a string

इस Statement Block में जब User Age Input करता है उसके बाद नाम Input करने के लिए जैसे ही Enter Press करता है, Program Terminate हो जाता है।

ऐसा इसलिए होता है क्योंकि Age Input करने के बाद जब Enter Press किया जाता है, तब ‘\n’ यानी एक New Line Character Input Buffer में पडा रहता है। ये Character cin.get() Statement को प्राप्त हो जाता है और Program बिना नाम लिए Terminate हो जाता है। इस समस्या से छुटकारा पाने के लिए हम istream के एक और Member Function ignore() का प्रयोग कर सकते हैं। यानी हम उपरोक्त Statements को निम्नानुसार लिख सकते हैं:

cout << “Enter the Doctor Name: "; 
cin >> d_name;                               // get a number
cin.ignore(10,’\n’);
cout << “Enter the patient's name: ”
cin.get(name, SIZE);                         // get a string

ये Function Input Buffer में पडे हुए दस Characters व ‘\n’ Character को Read करता है और उन्हें साफ कर देता है। यानी यदि हमें कभी cin.get() Function Use करने पर कुछ Problem आती है तो हमें cin.ignore() function को Use करना चाहिए।

Strings के बारे में इतनी जानकारी लेने के बाद अब हम employee Class को Revisit कर सकते हैं और उसमें से Loops को हटा कर वास्तविक String का प्रयोग करके Employee के नाम को Memory में Store कर सकते हैं। ये Program निम्नानुसार है:

Program
#include <iostream.h>
const int SMAX = 21;      	// maximum length of strings
const int EMAX = 100;     	// maximum number of employees

class employee
{
	private:
	char name[SMAX];    		// name (20 chars max)
	int serial_number;

	public:
	void input()        		// get data from user
	{
		cout << "   Enter name: ";
		cin.get(name, SMAX);
		cout << "   Enter serial number: ";
		cin >> serial_number;
	}

	void output()       		// display employee data
	{
		cout << "   Name = " << name;
		cout << "\n   Serial number = " << serial_number;
	}
};

void main()
{
	employee emps[EMAX];  		// array of employee objects
	int n = 0;            		// current number of objects in array
	int j;                		// loop variable
	char choice = 'x';    		// (ensure it's not 'q')

	while(choice != 'q')            // exit on 'q'
	{
		cout << "\n'a' OR ‘A’ to add an employee"
		"\n'd' OR ‘D’ to display all employees"
		"\n'q' OR ‘Q’ to quit program"
		"\nEnter letter choice: ";
		cin >> choice;           // get user's choice
		cin.ignore(10, '\n');    // eat extra '\n'

		switch(choice)
		{
			case 'a':        // get employee data
			case ‘A’:
			cout << "Enter data for employee " << (n+1) << endl;
			emps[n++].input();
			break;

			case 'd':         // display all employees
			case ‘D’:
				for(j=0; j<n; j++)
				{
					cout << "\nData for employee " << (j+1) << endl;
					emps[j].output();
				}
			break;

			case 'q':                 // let the while loop
			case ‘Q’:
				break;            // terminate the program

			default:
				cout << "Unknown command";
				break;
		}  // end switch
	}  // end while
}  // end main()

इस Program में हमने cin.get() Function का प्रयोग करके User से Employee Name Input लिया है। किसी भी तरह की समस्या से बचने के लिए cin.ignore() Function का प्रयोग किया है। एक while Loop में Switch Statement का प्रयोग किया है ताकि हम आवश्‍यकतानुसार जितने चाहें उतने Employees के Data Feed कर सकें। User निम्नानुसार इस Program से Interact करता है:

'a' OR 'A' to add an employee
'd' OR 'D' to display all employees
'q' OR 'Q' to quit program
Enter letter choice: a
Enter data for employee 1		//Enter Data for Employee 1
   Enter name: Rahul Sharma
   Enter serial number: 122

'a' OR 'A' to add an employee
'd' OR 'D' to display all employees
'q' OR 'Q' to quit program
Enter letter choice: a
Enter data for employee 2		//Enter Data for Employee 2
   Enter name: Kuldeep Mishra
   Enter serial number: 6

'a' OR 'A' to add an employee
'd' OR 'D' to display all employees
'q' OR 'Q' to quit program
Enter letter choice: d

Data for employee 1			//Display Data of All Employees
   Name = Rahul Sharma
   Serial number = 122
Data for employee 2
   Name = Kuldeep Mishra
   Serial number = 6

'a' OR 'A' to add an employee
'd' OR 'D' to display all employees
'q' OR 'Q' to quit program
Enter letter choice: q			//To Quit from the Program

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