const Object

const Object: जिस तरह से हम किसी Fundamental प्रकार के Variable को const Declare कर सकते हैं, ठीक उसी प्रकार से हम किसी User Defined Data Type के Variable यानी Class या Structure के Object को भी Constant Declare कर सकते हैं। const Object के Data Members के मानों को हम बदल नहीं सकते हैं, ठीक उसी प्रकार से जैसे किसी Basic Data Type के Variable के मान को नहीं बदल सकते। जैसे:

const zclass zobj;                      // declare a constant Object of class zclass

जब किसी Object को const करना होता है, तब हमें ये भी ध्‍यान रखना होता है कि Object को एक ही बार Initialize किया जा सकता है। Object को Initialize करने के लिए Constructor का प्रयोग किया जाता है।  साथ ही ये भी ध्‍यान रखना होता है कि const Object को Program के Run Time में बदला ना जा सके। Run Time में Object के मान को बदला ना जा सके इसलिए “C++” में ये विशेषता और जोडी गई है कि const Object को केवल const Function ही Access कर सकता है। अन्‍य कोई भी सामान्‍य Function किसी const Object को Access नहीं कर सकता। इसे समझने के लिए हम निम्नानुसार एक उदाहरण देखते हैं:

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

   public:                   
	  TTime() : hours(0), minutes(0) {}	// Constructor
                            
	  TTime(int h, int m) : hours(h), minutes(m) {} // Copy Constructor

	  void display();
	  void get();    // Declare non-constant function
};  // end class TTime

void TTime::display()    // Output to screen
{
   cout << hours << ':' << minutes;
}

void TTime::get()        // Input from user
{
   char dummy;           // for colon
   cout << "Enter time (format 12:59): ";
   cin >> hours >> dummy >> minutes;
}

void main()
{
   TTime noon(12, 0);    // Create noon
   cout << "\nNoon = ";
   noon.display();       // display Noon
   cout << "\n\nNoon " ;
   noon.get();           // Change Noon
   cout << "Noon = ";
   noon.display();       // display Time1
   getch();
}

इस Program में हमारे पास एक Object noon है। हम जानते हैं कि दोपहर हमेंशा 12 बजकर 00 मिनट पर ही होती है। लेकिन इस Program में ऐसी कोई व्‍यवस्था नहीं है कि User Noon में 12:0 के अलावा कुछ Input ना कर सके। User किसी भी समय Noon के मान में कुछ भी Input कर सकता है। इस Program का Output निम्नानुसार प्राप्त होता है:

Noon = 12:0

Noon Enter time (format 12:59): 12:45
Noon = 12:45

इस Output से हम देख सकते हैं कि Noon Object के Data Members के मान को User Change कर सकता है जबकि वास्तव में Noon का समय निश्चित 12:00 होता है। इस स्थिति में हमें एक ऐसी व्‍यवस्था की जरूरत होती है कि Noon Object के Data Members का मान Constant रहे ताकि User उस Constant मान को Change ना कर सके। इसके लिए हमें Object Noon को Constant करना होगा और ये काम हम निम्न Statement द्वारा कर सकते हैं:

const TTime noon(12, 0);

इस प्रकार के Declaration के बाद यदि हम Program में निम्नानुसार noon Object के समय को देखने के लिए display Function Call करते हैं:

noon.display();

तो हमें निम्नानुसार एक Error Message प्राप्त होता है:

Non-cost function TTime::display() called for const object.

यानी Compiler हमें बताता है कि यदि हम किसी Constant Object के Data Members को Access करना चाहते हैं, तो हमें const Function का प्रयोग करना होगा।

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