कॉन्स्ट सदस्य फ़ंक्शन क्या है?
प्रोग्राम में कॉन्स्ट के रूप में घोषित फ़ंक्शन। इन फ़ंक्शंस द्वारा कॉल किया गया ऑब्जेक्ट मॉडिफाई नहीं किया जा सकता। आकस्मिक परिवर्तनों से बचने के लिए const कीवर्ड का उपयोग करने की सिफारिश की जाती है।
नियम
- कॉन्स्ट सदस्य फ़ंक्शन किसी भी प्रकार के ऑब्जेक्ट (कॉन्स्ट या नॉन-कॉन्स्ट) द्वारा कॉल किया जा सकता है
- नॉन-कॉन्स्ट फ़ंक्शन केवल नॉन-कॉन्स्ट ऑब्जेक्ट्स द्वारा कॉल किए जा सकते हैं
- कॉन्स्ट फ़ंक्शन के अंदर गैर-म्यूटेबल डेटा सदस्यों को मॉडिफाई नहीं किया जा सकता
सिंटैक्स
datatype function_name() const;
C++ प्रोग्राम उदाहरण
#include <iostream>
using namespace std;
class Demo {
int val;
public:
Demo(int x = 0) {
val = x;
}
int getValue() const { // कॉन्स्ट सदस्य फ़ंक्शन
return val;
}
};
int main() {
const Demo d(28); // कॉन्स्ट ऑब्जेक्ट
Demo d1(8); // नॉन-कॉन्स्ट ऑब्जेक्ट
cout << "Value using const object d: " << d.getValue();
cout << "\nValue using non-const object d1: " << d1.getValue();
return 0;
}
आउटपुट
Value using const object d: 28 Value using non-const object d1: 8
कोड व्याख्या
Demo क्लास
प्राइवेट सदस्य val। कंस्ट्रक्टर val आरंभ करता है। getValue() कॉन्स्ट फ़ंक्शन है जो val लौटाता है।
मुख्य फ़ंक्शन
कॉन्स्ट ऑब्जेक्ट d और नॉन-कॉन्स्ट ऑब्जेक्ट d1 बनाता है। दोनों getValue() कॉल कर सकते हैं क्योंकि यह कॉन्स्ट है।
म्यूटेबल कीवर्ड
यदि कॉन्स्ट फ़ंक्शन में किसी डेटा सदस्य को मॉडिफाई करना हो, तो उसे mutable घोषित करें।
class Demo {
mutable int cache; // कॉन्स्ट फ़ंक्शन में मॉडिफाई करने योग्य
int val;
public:
int getValue() const {
cache++; // अनुमत
return val;
}
};
सर्वोत्तम अभ्यास
- जो फ़ंक्शन ऑब्जेक्ट स्टेट नहीं बदलते, उन्हें const घोषित करें
- कॉन्स्ट करेक्टनेस कोड को सुरक्षित और आत्म-दस्तावेजी बनाता है
- कॉन्स्ट ऑब्जेक्ट्स के लिए कॉन्स्ट फ़ंक्शंस आवश्यक हैं