c++ problems and solutions related to oops

1->How to publicly inherit from a base class but make some of public methods from the base class private in the derived class?


ans-
1) You can use public inheritance and then make bar private:
class Base {
public:
    void foo(){}
    void bar(){}
};

class Derived : public Base {
private:
    using Base::bar;
};
2) You can use private inheritance and then make foo public:
class Base {
public:
    void foo(){}
    void bar(){}
};

class Derived : private Base {
public:
    using Base::foo;
};
Note: If you have a pointer or reference of type Base which contains an object of type Derived then the user will still be able to call the member.


Comments

Popular posts from this blog

What are Master and Slave databases and how does pairing them make web apps faster?

Storage Scalability ->Vertical scaling and Horizontal scaling Sharding