Puoi avere classi nidificate protette in C ++?
Domanda
Ho una classe che solo in realtà ha sempre avuto bisogno delle classi in una certa gerarchia di classi. Volevo sapere se è possibile nidificare la classe nella sezione protetta della classe più alta e far sì che tutte le altre classi la ereditino automaticamente?
Soluzione
" Eredita " è la parola sbagliata da usare poiché ha una definizione molto specifica in C ++ che non intendi, ma sì, puoi farlo. Questo è legale:
class A {
protected:
class Nested { };
};
class B : public A {
private:
Nested n;
};
E il codice che non è in A o qualcosa che deriva da A non può accedere o creare un'istanza di A :: Nested.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow