C++ में एक्सेस संशोधक को कैसे नियंत्रित करें: सदस्य दृश्यता को समझना

C Mem Eksesa Sansodhaka Ko Kaise Niyantrita Karem Sadasya Drsyata Ko Samajhana



डेटा छुपाना C++ की प्रमुख विशेषताओं में से एक है जो किसी क्लास के डेटा तक बाहर से अवांछित पहुंच को रोकने के लिए क्लास में डेटा की पहुंच को सीमित करने को संदर्भित करता है। इसलिए, एक्सेस संशोधक का उपयोग यह परिभाषित करने के लिए किया जाता है कि कौन से वर्ग के सदस्य किस बाहरी स्रोत तक पहुंच योग्य हैं और कौन से नहीं।

C++ में एक्सेस संशोधक

एक्सेस संशोधक का उपयोग किसी वर्ग के डेटा की पहुंच और दृश्यता को प्रबंधित करने के लिए किया जाता है। वे डेटा सदस्यों पर कुछ प्रतिबंध लगाते हैं ताकि बाहरी फ़ंक्शन उन तक न पहुंच सकें। C++ में एक्सेस संशोधक तीन प्रकार के होते हैं:

C++ में सार्वजनिक एक्सेस संशोधक

सार्वजनिक कीवर्ड के तहत घोषित वर्ग के सभी सदस्य कार्यक्रम के भीतर वर्ग के बाहर के सभी कार्यों के लिए उपलब्ध होंगे। डायरेक्ट मेंबर एक्सेस ऑपरेटर (.) जिसे डॉट ऑपरेटर के रूप में भी जाना जाता है, का उपयोग इन डेटा सदस्यों तक पहुंचने के लिए उस विशिष्ट वर्ग के ऑब्जेक्ट के साथ किया जा सकता है।







उदाहरण

सार्वजनिक एक्सेस संशोधक का उपयोग किसी वर्ग को घोषित करने के लिए किया जाता है, और इसके डेटा सदस्यों को प्रोग्राम के भीतर अन्य कार्यों द्वारा एक्सेस किया जाता है।



#शामिल

#शामिल

#शामिल<गणित.h>

नेमस्पेस एसटीडी का उपयोग करना ;
वर्ग त्रिभुज
{
जनता :
तैरना एक्स , और , साथ ;
खालीपन इनपुट ( )
{
अदालत << 'त्रिभुज की भुजा x दर्ज करें:-' ;
खाना >> एक्स ;
अदालत << 'त्रिभुज की भुजा y दर्ज करें:-' ;
खाना >> और ;
अदालत << 'त्रिभुज की भुजा z दर्ज करें:-' ;
खाना >> साथ ;
}
खालीपन क्षेत्र ( )
{
तैरना एस = ( एक्स + और + साथ ) / 2 ;
तैरना क्षेत्र = sqrt ( एस * ( एस - एक्स ) * ( एस - और ) * ( एस - साथ ) ) ;
अदालत << ' \एन त्रिभुज का क्षेत्रफल = << क्षेत्र ;
}
} ;
int यहाँ मुख्य ( )
{
त्रिभुज t1 ;
t1. इनपुट ( ) ;
t1. क्षेत्र ( ) ;
वापस करना 0 ;
}

त्रिभुज को वर्ग के रूप में परिभाषित किया गया है और इसके पैरामीटर सार्वजनिक कीवर्ड के अंतर्गत हैं। फिर सार्वजनिक संशोधक के डेटा सदस्यों तक पहुंच के माध्यम से इस वर्ग के बाहर त्रिभुज के क्षेत्र की गणना की जाती है।







त्रिभुज की तीनों भुजाएँ उपयोगकर्ता द्वारा इनपुट की जाती हैं और त्रिभुज के क्षेत्रफल की गणना मानक सूत्र का उपयोग करके, वर्ग के बाहर के मानों तक पहुँचकर की जाती है, जो कि 13.4164 है।

C++ में प्राइवेट एक्सेस संशोधक

कीवर्ड प्राइवेट के तहत घोषित क्लास के सभी सदस्य प्रोग्राम में क्लास के बाहर किसी भी फ़ंक्शन के लिए उपलब्ध नहीं होंगे। इन निजी सदस्यों को केवल उसी कक्षा के प्रत्यक्ष सदस्यों द्वारा ही पढ़ा जा सकता है। हालाँकि, मित्र फ़ंक्शन और कक्षाएं भी डेटा तक पहुंच सकती हैं।



उदाहरण

सार्वजनिक और निजी दो वर्ग घोषित किए गए हैं, और कार्यक्रम का रिटर्न मान त्रिभुज का क्षेत्र होना है।

#शामिल

#शामिल

#शामिल<गणित.h>

नेमस्पेस एसटीडी का उपयोग करना ;
वर्ग त्रिभुज
{

निजी :
तैरना एक्स , और , साथ ;
जनता :
खालीपन इनपुट ( )

{

अदालत << 'त्रिभुज की भुजा x दर्ज करें:-' ;
खाना >> एक्स ;
अदालत << 'त्रिभुज की भुजा y दर्ज करें:-' ;
खाना >> और ;
अदालत << 'त्रिभुज की भुजा z दर्ज करें:-' ;
खाना >> साथ ;

}
खालीपन क्षेत्र ( )
{

तैरना एस = ( एक्स + और + साथ ) / 2 ;
तैरना क्षेत्र = sqrt ( एस * ( एस - एक्स ) * ( एस - और ) * ( एस - साथ ) ) ;
अदालत << ' \एन त्रिभुज का क्षेत्रफल = << क्षेत्र ;

}

} ;

int यहाँ मुख्य ( )
{
त्रिभुज t1 ;
t1. इनपुट ( ) ;
t1. क्षेत्र ( ) ;
वापस करना 0 ;

}

मुख्य() में, ऑब्जेक्ट t1 सीधे निजी वर्ग चर फ्लोट x, y और z तक नहीं पहुंच सकता है, इसलिए इसे केवल सार्वजनिक फ़ंक्शन इनपुट() के माध्यम से अप्रत्यक्ष रूप से हेरफेर किया जा सकता है, क्योंकि यह फ़ंक्शन x, y और z के मान प्राप्त करता है।

त्रिभुज का क्षेत्रफल सार्वजनिक वर्ग का उपयोग करके उसमें हेरफेर करके निजी वर्ग तक पहुंच प्राप्त किया जाता है। यदि x, y और z के मान सार्वजनिक वर्ग में घोषित नहीं किए जाएंगे, तो उन्हें गणना के लिए मुख्य() में एक्सेस नहीं किया जाएगा।

C++ में संरक्षित एक्सेस संशोधक

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

उदाहरण

संरक्षित कीवर्ड के अंतर्गत संरक्षित डेटा केवल कक्षा के भीतर और उस वर्ग द्वारा पढ़ा जा सकता है जो व्युत्पन्न वर्ग है। यह उदाहरण संरक्षित एक्सेस संशोधक का व्यावहारिक प्रदर्शन है।

#शामिल

#शामिल

#शामिल<गणित.h>

नेमस्पेस एसटीडी का उपयोग करना ;
// मूल वर्ग
वर्ग त्रिभुज
{

संरक्षित :
तैरना एक्स , और , साथ ;
} ;
//बाल वर्ग
क्लास ट्राइएंगलचाइल्ड : सार्वजनिक त्रिभुज {
जनता :
खालीपन इनपुट ( )

{

अदालत << 'त्रिभुज की भुजा x दर्ज करें:-' ;
खाना >> एक्स ;
अदालत << 'त्रिभुज की भुजा y दर्ज करें:-' ;
खाना >> और ;
अदालत << 'त्रिभुज की भुजा z दर्ज करें:-' ;
खाना >> साथ ;

}
खालीपन क्षेत्र ( )
{
तैरना एस = ( एक्स + और + साथ ) / 2 ;
तैरना क्षेत्र = sqrt ( एस * ( एस - एक्स ) * ( एस - और ) * ( एस - साथ ) ) ;
अदालत << ' \एन त्रिभुज का क्षेत्रफल = << क्षेत्र ;

}
} ;

int यहाँ मुख्य ( )

{
त्रिभुज बच्चा बच्चा ;
बच्चा। इनपुट ( ) ;
बच्चा। क्षेत्र ( ) ;
वापस करना 0 ;

}

ट्राइएंगलचाइल्ड एक विरासत में मिला वर्ग है जो क्लास ट्राइएंगल से लिया गया है। वेरिएबल x, y और z को संरक्षित कीवर्ड के साथ त्रिभुज में घोषित किया गया है। इसका मतलब यह है कि ये वेरिएबल सुरक्षित हैं लेकिन इन्हें ट्राइएंगल चाइल्ड द्वारा एक्सेस किया जा सकता है क्योंकि ट्राइएंगल इसका मूल वर्ग है। वेरिएबल्स के मान ट्राइएंगल क्लास में घोषित होने के बावजूद ट्राइएंगल चाइल्ड में निर्दिष्ट किए गए हैं।

चाइल्ड क्लास के माध्यम से वेरिएबल्स तक पहुंच बनाई जाती है, और फिर त्रिकोण के क्षेत्रफल की गणना की जाती है।

निष्कर्ष

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