voglio fare fare un membro pubblico in una classe base privata in una classe derivata, in questo modo:Posso rendere privata una variabile membro pubblica in una classe derivata?
class A {
public:
int x;
int y;
};
class B : public A {
// x is still public
private:
// y is now private
using y;
};
Ma a quanto pare "con" non può essere utilizzato in questo modo. C'è un modo per farlo in C++?
(Non posso usare l'ereditarietà privata perché ci sono altri membri e le funzioni di una che deve ancora essere pubblica.)
Questo sembra un design scomodo. Anche se puoi farlo per la classe B, tutto ciò che qualcuno dovrebbe fare è upcast verso un puntatore o riferimento ad A e quindi sarebbero in grado di accedere al membro. – TheUndeadFish
Possibile duplicato di [C++: come ereditare pubblicamente da una classe base, ma rendere alcuni metodi pubblici dalla classe base privata nella classe derivata?] (Http://stackoverflow.com/questions/2986891/c-how-to -publicly-eredita-da-a-base-class-ma-make-some-of-pubblici-metodi-FR) –