C++ Type Qualifiers

Introduction to C++ Type Qualifiers

C++ में type qualifiers के द्वारा किसी variable के बारे में अतिरिक्त जानकारी provide की जाती है। इन्हें variable के नाम से पूर्व define किया जाता है। उदाहरण के लिए type qulifier का प्रयोग करके आप compiler को बता सकते है की variable की value change नहीं की जा सकती है।

C++ में निचे दिए जा रहे type qualifiers available है।

  1. const
  2. volatile
  3. restrict

इन सभी type qualifiers के बारे में निचे detail से बताया जा रहा है।

const

जब किसी variable को const qualifier के साथ define किया जाता है तो इसका अर्थ यह होता है की उस variable की value change नहीं की जा सकती है। Const variable create करने का general syntax निचे दिया जा रहा है।

const-keyword data-type variable-name = value;

इस प्रकार के variables को declare करते समय ही इनकी value set की जाती है। किसी भी const variable की value compile time पर known होनी चाहिए। यदि ऐसा नहीं किया जाता है तो error generate होती है।

const int Age;    //No value set, will generate an error

यदि किसी class object को const define किया जा रहा है तो यह आवश्यक है की उस class के सभी members को constructor में initialize (value set करना) किया जाए। Class objects को const define करने का general syntax निचे दिया जा रहा है।

const-keyword class-name object-name;

इसके अलावा जब किसी object को const define किया जाता है तो उस class के किसी भी data members (variables) की value change नहीं की जा सकती है। साथ ही उस class के कोई भी non const functions call नहीं किये जा सकते है।

एक pointer को भी constant define किया जा सकता है। इसका syntax निचे दिया जा रहा है।

data-type * const-keyword Variable-name = value;

Const pointer define करने के लिए pointer operator (*) और variable name के बीच const keyword define किया जाता है।

volatile

C++ में volatile type qualifier compiler को बताता है की variable की value program में define किये गए तरीकों के अलावा किसी दूसरे माध्यम से भी change हो सकती है। इस प्रकार के variable पर compiler या program का कोई control नहीं होता है।

Volatile variables की value program के बाहर दूसरे mediums से change होती है। उदाहरण के लिए किसी hardware की state change होने के कारण ऐसे variables की value change हो सकती है।

Volatile variables create करने का general syntax निचे दिया जा रहा है।

volatile-keyword data-type variable-name = value;

Volatile variables memory access में consistency रखते है। जब भी volatile variable की value की आवश्यकता होती है तो इसे memory में से read किया जाता है और जब volatile variable की value change होती है तब ही इसे memory में write किया जाता है।

जब किसी class को volatile define किया जाता है तो उसके सभी members automatically volatile हो जाते है।

volatile class class-name
{
     //all class members will be volatile
}

कोई variable एक साथ const और volatile दोनों हो सकता है। ऐसे में वह variable किसी ऐसी process द्वारा change किया जाता है जो asynchronous हो।

आप किसी function को भी volatile define कर सकते है। लेकिन ऐसा आप केवल तब ही कर सकते है जब वह function static नहीं हो और class का member हो।

restrict

C++ में restrict qualifier restrict pointers define करने के लिए प्रयोग किया जाता है। जब किसी pointer को restrict define किया जाता है तो जिस object को वह point करता है उसे सिर्फ और सिर्फ उसी restrict pointer द्वारा access किया जा सकता है। इसके अलावा उस object को access करने वाले सभी माध्यमों को restrict कर दिया जाता है।