Public vs Private inheritance
class Base {
public:
int publicVar;
protected:
int protectedVar;
private:
int privateVar;
};
class PublicDerived : public Base {
// publicVar is public
// protectedVar is protected
// privateVar is not accessible
};
class PrivateDerived : private Base {
// publicVar is private
// protectedVar is private
// privateVar is not accessible
};
int main() {
PublicDerived pub;
pub.publicVar = 1; // OK
// pub.protectedVar = 2; // Error: protected
// pub.privateVar = 3; // Error: private
PrivateDerived priv;
// priv.publicVar = 1; // Error: private in PrivateDerived
// priv.protectedVar = 2; // Error: private in PrivateDerived
// priv.privateVar = 3; // Error: not accessible
return 0;
}Last updated