क्या आप कृपया बता सकते हैं कि निम्नलिखित कोड संकलित क्यों होता है और ठीक काम करता है (जीसीसी-4.3.4 पर चेक किया गया)। मैंने सोचा कि चुनिंदा विरासत सदस्यों/विधियों तक पहुंच को कमजोर या मजबूत भी नहीं कर सकती है। क्या यह encapsulation नियम तोड़ नहीं है?चुनिंदा विरासत सी ++
#include <iostream>
class A {
protected:
void foo() { std::cout << "foo" << std::endl; }
};
class B : private A {
public:
using A::foo; //foo() becomes public?!
};
int main() {
B b;
b.foo();
return 0;
}
+1। –
मानक कंटेनर से निजी रूप से विरासत में मिलने पर आप ऐसा करते हैं। असल में, आप उथल-पुथल को रोकते हैं (इसका तात्पर्य है कि आपको आभासी विनाशक की आवश्यकता नहीं है), लेकिन आप कुछ परिचालनों को अनुमति देते हैं जो कि अनुपूरक/आगे बढ़ने के लिए कठिन होंगे। –