C++ कॉन्स्ट फ़ंक्शन उदाहरण

C Konsta Fanksana Udaharana



यह आलेख 'कॉन्स्ट' कीवर्ड पर केंद्रित है जिसका उपयोग C++ में फ़ंक्शन के साथ किया जाता है। 'कॉन्स्ट' कीवर्ड को स्थिर मान के रूप में संदर्भित किया जाता है जिसे हम प्रोग्राम के निष्पादन के दौरान संशोधित नहीं कर सकते हैं। C++ में 'const' फ़ंक्शन वे फ़ंक्शन हैं जिनके डेटा सदस्यों को उनकी कक्षा में बदलने के लिए प्रतिबंधित किया गया है। 'cont' फ़ंक्शंस का कुशलतापूर्वक उपयोग किया जाता है क्योंकि वे ऑब्जेक्ट के मूल्य में अप्रत्याशित संशोधनों से बच सकते हैं।

उदाहरण 1: C++ में कॉन्स्ट मेंबर फ़ंक्शन का प्रोग्राम

यहां, हमारे पास कॉन्स्ट मेंबर फ़ंक्शन का एक सरल प्रोग्राम है:

#शामिल
का उपयोग करते हुए नाम स्थान कक्षा ;
कक्षा मेरी कक्षा {
int यहाँ एक पर ;
जनता :
मेरी कक्षा ( int यहाँ एन = 0 ) {
एक पर = एन ;
}
int यहाँ मूल्य प्राप्त करें ( ) कॉन्स्ट {
वापस करना एक पर ;
}
} ;
int यहाँ मुख्य ( ) {
कॉन्स्ट मायक्लास सी ( 30 ) ;
मायक्लास c1 ( 5 ) ;
अदालत << 'ऑब्जेक्ट सी का उपयोग कर संख्या:' << सी। मूल्य प्राप्त करें ( ) ;
अदालत << ' \एन ऑब्जेक्ट c1 का उपयोग करने वाली संख्या: ' << सी1. मूल्य प्राप्त करें ( ) ;
वापस करना 0 ;
}

प्रारंभ में, हम हेडर फ़ाइल को परिभाषित करते हैं जो प्रोग्राम इनपुट/आउटपुट स्ट्रीम को सक्षम बनाता है। फिर, हम 'MyClass' क्लास सेट करते हैं जहां हम एक 'num' वेरिएबल और MyClass() फ़ंक्शन और getVal() फ़ंक्शन के सदस्य फ़ंक्शन घोषित करते हैं। MyClass() फ़ंक्शन के अंदर, हम '0' के मान के साथ 'n' पैरामीटर सेट करते हैं। फिर, 'एन' तर्क को 'संख्या' चर को सौंपा गया है। इसके बाद, हम getVal() फ़ंक्शन को 'const' कीवर्ड के साथ कॉल करते हैं, जो दर्शाता है कि ऑब्जेक्ट की वर्तमान स्थिति को फ़ंक्शन कॉल पर संशोधित नहीं किया जा सकता है। GetVal() फ़ंक्शन 'num' सदस्य चर लौटाता है।







अंत में, हम मुख्य() फ़ंक्शन तक पहुंचते हैं। यहां, हम MyClass() फ़ंक्शन के 'c' और 'c1' ऑब्जेक्ट को परिभाषित करते हैं और इन ऑब्जेक्ट को मान भी पास करते हैं। 'सी' ऑब्जेक्ट को 'कॉन्स्ट' कीवर्ड के साथ सेट किया गया है, जो दर्शाता है कि इस ऑब्जेक्ट को दिए गए मान को संशोधित नहीं किया जा सकता है।



ऑब्जेक्ट द्वारा कॉल किए गए कॉन्स्ट सदस्य फ़ंक्शन का आउटपुट निम्नलिखित में दिखाया गया है। इस तरह, हम सदस्य फ़ंक्शन और ऑब्जेक्ट के साथ 'कॉन्स्ट' कीवर्ड का उपयोग कर सकते हैं:







उदाहरण 2: C++ में कक्षा के बाहर एक कॉन्स्ट सदस्य फ़ंक्शन का प्रोग्राम

अब, हमारे पास एक और कार्यान्वयन है जहां कॉन्स्ट सदस्य फ़ंक्शन को क्लास परिभाषा के बाहर परिभाषित किया गया है और कॉन्स्ट सदस्य फ़ंक्शन का उपयोग करके एक निजी सदस्य वैरिएबल मान सेट और पुनर्प्राप्त किया गया है।

#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;

कक्षा न्यूक्लास {
int यहाँ मैं ;

जनता :
खालीपन set_record ( int यहाँ ) ;

int यहाँ get_record ( ) कॉन्स्ट ;
} ;

खालीपन न्यूक्लास :: set_record ( int यहाँ एक्स ) { मैं = एक्स ; }
int यहाँ न्यूक्लास :: get_record ( ) कॉन्स्ट { वापस करना मैं ; }

int यहाँ मुख्य ( )
{
न्यूक्लास सी ;
सी। set_record ( 10 ) ;
अदालत << सी। get_record ( ) ;

वापस करना 0 ;
}

यहां, हम सबसे पहले एक क्लास, 'न्यूक्लास' स्थापित करते हैं, जहां हम 'i' वेरिएबल को इनिशियलाइज़ करते हैं जिसे निजी रखा जाता है। उसके बाद, हमारे पास एक सार्वजनिक कीवर्ड है जहां set_record() और get_record() सदस्य फ़ंक्शन परिभाषित हैं। Set_record() सदस्य फ़ंक्शन का उपयोग 'i' वेरिएबल का मान सेट करने के लिए किया जाता है और get_record() फ़ंक्शन का उपयोग यहां 'i' वेरिएबल का मान वापस करने के लिए किया जाता है। ध्यान दें कि हम get_record() सदस्य फ़ंक्शन के साथ 'const' कीवर्ड का उपयोग करते हैं जो इसे const सदस्य फ़ंक्शन के रूप में दर्शाता है, और ऑब्जेक्ट स्थिति को संशोधित नहीं किया जा सकता है। उसके बाद, हमारे पास 'i' वेरिएबल मान सेट करने के लिए एक set_record() फ़ंक्शन परिभाषा है।



इसी तरह, हमारे पास 'i' वेरिएबल मान को पुनः प्राप्त करने के लिए get_record() फ़ंक्शन परिभाषा है। फिर, हम मुख्य() फ़ंक्शन सेट करते हैं जहां हमारे पास 'न्यूक्लास' वर्ग के 'सी' ऑब्जेक्ट की घोषणा होती है। फिर, 'set_record', एक गैर-कॉन्स्ट सदस्य फ़ंक्शन, को 'z' वेरिएबल को मान निर्दिष्ट करने के लिए कहा जाता है। आगे बढ़ते हुए, हम 'i' का मान प्रिंट करने के लिए get_record() const सदस्य फ़ंक्शन को कॉल करते हैं।

प्राइवेट मेंबर वेरिएबल का मान कॉन्स्ट मेंबर फ़ंक्शन द्वारा कॉल किया जाता है और निम्नलिखित प्रॉम्प्ट में दिखाया गया है:

उदाहरण 3: कक्षा के बाहर एक स्वतंत्र फ़ंक्शन के रूप में परिभाषित एक कॉन्स्ट सदस्य फ़ंक्शन का प्रोग्राम

हालाँकि, हम कॉन्स्ट सदस्य फ़ंक्शन का एक और मामला लागू करते हैं जहां 'कॉन्स्ट' कीवर्ड वाले सदस्य फ़ंक्शन को क्लास के बाहर स्टैंडअलोन फ़ंक्शन के रूप में बुलाया जाता है।

#शामिल<बिट्स/stdc++.h>
का उपयोग करते हुए नाम स्थान कक्षा ;
कक्षा समीकरण {
int यहाँ n1,n2 ;
जनता :
खालीपन सेट_समीकरण ( int यहाँ एक्स, int यहाँ और )
{
एन 1 = एक्स ;
एन 2 = और ;
}
खालीपन शो_समीकरण ( )
{
अदालत << 'समीकरण है:' << एन 1 << '+' << एन 2 << 'बी' << अंतः ;
}
दोस्त खालीपन मजा आता है ( कॉन्स्ट समीकरण ) ;
} ;
खालीपन मजा आता है ( कॉन्स्ट समीकरण वस्तु )
{
अदालत << 'फ़ंक्शन का उपयोग करने वाला समीकरण है:' << ओबीजे. एन 1 << '+' << ओबीजे. एन 2 << 'बी' << अंतः ;
}
int यहाँ मुख्य ( )
{
समीकरण वस्तु ;
ओबीजे. सेट_समीकरण ( 5 , 8 ) ;
ओबीजे. शो_समीकरण ( ) ;
मजा आता है ( ओबीजे ) ;
}

यहां, हम 'समीकरण ()' वर्ग बनाते हैं और फिर 'n1' और 'n2' चर घोषित करते हैं। यहां, हम 'n1' और 'n2' वेरिएबल्स के मान सेट करने के लिए set_Equation() सदस्य फ़ंक्शन भी जोड़ते हैं। show_Eqation() फ़ंक्शन वह समीकरण दिखाता है जो इन चरों का उपयोग करके उत्पन्न होता है।

इसके बाद, हमारे पास funIs() का एक फ़ंक्शन डिक्लेरेशन है जिसे 'friend' कीवर्ड का उपयोग करके परिभाषित किया गया है। यह 'मित्र' कीवर्ड हमें 'समीकरण' वर्ग के निजी सदस्य तक पहुंचने की अनुमति देता है। इसके बाद, हम क्लास के बाहर 'funIs()' फ्रेंड फ़ंक्शन को कॉल करते हैं और 'समीकरण' क्लास के 'obj' पैरामीटर को कॉन्स्ट के रूप में इनपुट करते हैं। अंत में, हमारे पास एक मुख्य() फ़ंक्शन है जहां हम 'समीकरण' वर्ग की वस्तु घोषित करते हैं। फिर, हम set_Equation() फ़ंक्शन का उपयोग करके 'n1' और 'n2' वेरिएबल्स के मान सेट करते हैं। 'n1' और 'n2' वेरिएबल का उपयोग show_Equation() फ़ंक्शन का उपयोग करके उनके मान प्रदर्शित करने के लिए किया जाता है। अंत में, हम समीकरण प्रदर्शित करने के लिए 'समीकरण' वर्ग के 'funIs' मित्र फ़ंक्शन को कॉल करते हैं।

कॉन्स्ट फ्रेंड फ़ंक्शन का उपयोग करने वाले समीकरण और समीकरण प्रॉम्प्ट पर प्रदर्शित होते हैं:

उदाहरण 4: C++ में मान अद्यतन करने के लिए एक कॉन्स्ट सदस्य फ़ंक्शन का प्रोग्राम (सबसे खराब स्थिति)

प्रोग्राम कॉन्स्ट मेंबर फ़ंक्शन के सबसे खराब परिदृश्य को प्रदर्शित करता है जहां हम 'कॉन्स्ट मेंबर फ़ंक्शन के अंदर' नामक वेरिएबल के मान को संशोधित करने का प्रयास करते हैं।

#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;

कक्षा डेटा {
int यहाँ में ;

जनता :
खालीपन मूल्य ते करना ( int यहाँ मैं ) { में = मैं ; }
int यहाँ मूल्य प्राप्त करें ( ) कॉन्स्ट
{

++ में ;
वापस करना में ;
}

} ;

int यहाँ मुख्य ( )
{
डेटा डी ;
डी। मूल्य ते करना ( बीस ) ;
अदालत << अंतः << डी। मूल्य प्राप्त करें ( ) ;

वापस करना 0 ;
}

यहां, हम पहले 'डेटा' क्लास का निर्माण करते हैं और क्लास के भीतर 'v' वेरिएबल घोषित करते हैं। इसके बाद, हम 'सार्वजनिक' कीवर्ड सेट करते हैं और फिर 'सेटवैल्यू()' के क्लास सदस्य फ़ंक्शन की घोषणा करते हैं जो क्लास के कंस्ट्रक्टर का प्रतिनिधित्व करता है और गेटवैल्यू() जो क्लास के गेटर सदस्य फ़ंक्शन को इंगित करता है। SetValue() फ़ंक्शन 'i' वेरिएबल को एक पैरामीटर के रूप में लेता है। यह 'i' वेरिएबल 'v' सदस्य वेरिएबल को सौंपा गया है।

इसके बाद, हमारे पास getValue() फ़ंक्शन परिभाषा है जहां हम 'v' वेरिएबल का मान पुनर्प्राप्त करते हैं। चूँकि getValue() फ़ंक्शन को 'const' कीवर्ड के साथ घोषित किया गया है, यह दर्शाता है कि 'v' वेरिएबल का मान किसी भी स्थिति में अपडेट नहीं किया जा सकता है। हालाँकि, हम जानबूझकर इसके मान को बदलने के लिए 'v' वेरिएबल को बढ़ाने का प्रयास करते हैं। जब प्रोग्राम इस चरण पर पहुंचता है, तो एक त्रुटि उत्पन्न हो जाती है। अंत में, हमारे पास मुख्य() फ़ंक्शन कॉल है जहां हम 'डेटा' वर्ग के 'डी' ऑब्जेक्ट को परिभाषित करते हैं और इस 'डी' ऑब्जेक्ट के लिए '20' का मान निर्धारित करते हैं। उसके बाद, हम ऑब्जेक्ट का 'डी' मान प्राप्त करने के लिए getValue() फ़ंक्शन को कॉल करते हैं।

प्रॉम्प्ट पिछले कार्यान्वयन के परिणाम उत्पन्न करता है जहां यह '++v' पर एक त्रुटि देता है क्योंकि हमें कॉन्स्ट सदस्य फ़ंक्शन ऑब्जेक्ट के मान को संशोधित करने की अनुमति नहीं है:

निष्कर्ष

अंत में, हम C++ के कॉन्स्ट फ़ंक्शन में गोता लगाते हैं जिसका उपयोग प्रोग्राम के मूल्य में आकस्मिक परिवर्तनों से बचने के लिए किया जाता है। C++ में कॉन्स्ट मेंबर फ़ंक्शंस केवल पढ़ने योग्य फ़ंक्शंस हैं जिनके ऑब्जेक्ट्स में संशोधन की अनुमति नहीं है। हमने C++ में इसकी कार्यक्षमता प्रदर्शित करने के लिए कॉन्स्ट फ़ंक्शन के विभिन्न परिदृश्यों को भी लागू किया।