सी ++ में कक्षाएं कैसे घोषित की जा सकती हैं public
, private
, या protected
?सी ++ कक्षाएं (सार्वजनिक, निजी, और संरक्षित)
उत्तर
C++ में एक पहुँच विनिर्देशक तरीका है कि वहाँ होने एक पूरे वर्ग का बोध भी नहीं है जावा या सी # में। यदि कोड के एक टुकड़े में कक्षा की दृश्यता है, तो वह उस वर्ग के नाम का संदर्भ दे सकता है और इसे कुशल बना सकता है। उस ने कहा, इस पर कुछ प्रतिबंध हैं। सिर्फ इसलिए कि आप किसी वर्ग का संदर्भ दे सकते हैं इसका मतलब यह नहीं है कि आप इसे तुरंत चालू कर सकते हैं, उदाहरण के लिए, क्योंकि निर्माता को निजी चिह्नित किया जा सकता है। इसी तरह, यदि कक्षा किसी अन्य वर्ग के निजी या संरक्षित अनुभाग में घोषित एक नेस्टेड कक्षा है, तो कक्षा उस वर्ग और उसके दोस्तों के बाहर पहुंच योग्य नहीं होगी।
यह निर्भर करता है कि आप सदस्यों या विरासत का मतलब है या नहीं। आपके पास 'private class'
नहीं हो सकता है।
class Foo
{
public:
Foo() {} //public ctr
protected:
void Baz() //protected function
private:
void Bar() {} //private function
}
या विरासत:
class Foo : public Bar
class Foo : protected Bar
class Foo : private Bar
दूसरे के अंदर एक वर्ग नेस्टिंग द्वारा:
class A
{
public:
class B {};
protected:
class C {};
private:
class D {};
};
आप ग्राहकों को अपने इंटरफ़ेस को प्रकाशित न करके "निजी कक्षाएं" लागू कर सकते हैं।
मुझे "संरक्षित कक्षाएं" बनाने का कोई तरीका नहीं पता है।
जैसा कि आप चाहते हैं कि कोई कक्षा का उपयोग करने में सक्षम न हो? एक वर्ग को उपclassed किया जा सकता है: यानी कक्षा ए {निजी: कक्षा बी {}; }; –
यह आपके लिए उपयोगी हो सकता है: http://www.linuxquestions.org/questions/programming-9/public-private-protected-c-215399/#post1098220 – KyleWpppd
इस प्रश्न के लिए नज़दीकी वोट क्यों है? यह पूछने के लिए एक बिल्कुल उचित सवाल की तरह लगता है। – templatetypedef