quiero hacer que un miembro del público en una clase base privada en una clase derivada, como esto:¿Puedo hacer que una variable de miembro público sea privada en una clase derivada?
class A {
public:
int x;
int y;
};
class B : public A {
// x is still public
private:
// y is now private
using y;
};
Pero al parecer el "uso" no se pueden utilizar de esa manera. ¿Hay alguna manera de hacer esto en C++?
(No puedo usar la herencia privada porque hay otros miembros y funciones de A que todavía debe ser pública.)
Esto se siente como un diseño incómodo. Incluso si puede hacer esto para la clase B, todo lo que alguien debería hacer es actualizar a un puntero o referencia a A y luego podrían acceder al miembro. – TheUndeadFish
Posible duplicado de [C++: cómo heredar públicamente de una clase base pero hacer que algunos de los métodos públicos de la clase base sean privados en la clase derivada?] (Http://stackoverflow.com/questions/2986891/c-how-to -publicly-inherit-from-a-base-class-but-make-some-of-public-methods-fr) –