Supponiamo che io abbia una base e classe derivata:di default l'accesso di ereditarietà di classe
class Base
{
public:
virtual void Do();
}
class Derived:Base
{
public:
virtual void Do();
}
int main()
{
Derived sth;
sth.Do(); // calls Derived::Do OK
sth.Base::Do(); // ERROR; not calls Based::Do
}
come visto desidero accedere Base :: fare attraverso derivata. Ricevo un errore di compilazione come "classe Base inaccessibile" tuttavia quando dichiaro Derive come
class Derived: public Base
funziona correttamente.
Ho letto l'accesso ereditario predefinito è pubblico, quindi perché ho bisogno di dichiarare esplicitamente l'ereditarietà pubblica qui?
@Prasoon estrapolate dal contesto hai ragione, ma il contesto stabilito dal titolo e dal codice è chiaramente "classe" e non "struttura". –
Il downvote non è mio. In aumento per controbilanciare. :) –