Ereditarietà (C++)

In questa sezione viene illustrato come utilizzare le classi derivate per produrre programmi estensibili.

Panoramica

Le nuove classi possono essere derivate da classi esistenti usando un meccanismo denominato "ereditarietà" (vedere le informazioni che iniziano in Ereditarietà singola). Le classi utilizzate per la derivazione sono denominate "classi base" di una determinata classe derivata. Una classe derivata viene dichiarata utilizzando la sintassi seguente:

class Derived : [virtual] [access-specifier] Base
{
   // member list
};
class Derived : [virtual] [access-specifier] Base1,
   [virtual] [access-specifier] Base2, . . .
{
   // member list
};

Dopo il tag (nome) della classe, vengono visualizzati i due punti seguiti da un elenco di specifiche di base. Le classi base così denominate devono essere state dichiarate in precedenza. Le specifiche di base possono contenere un identificatore di accesso, ovvero una delle parole chiave public, protected o private. Gli identificatori di accesso vengono visualizzati prima del nome della classe base e si applicano solo a tale classe. Questi identificatori controllano l'autorizzazione della classe derivata a utilizzare i membri della classe base. Per informazioni sull'accesso ai membri della classe di base, vedere Member-Controllo di accesso. Se l'identificatore di accesso viene omesso, l'accesso a tale base viene considerato private. Le specifiche di base possono contenere la parola chiave virtual per indicare l'ereditarietà virtuale. Questa parola chiave può essere visualizzata prima o dopo l'identificatore di accesso, se presente. Se viene utilizzata l'ereditarietà virtuale, la classe base viene definita come una classe base virtuale.

È possibile specificare più classi base, separandole con virgole. Se viene specificata una singola classe di base, il modello di ereditarietà è Ereditarietà singola. Se viene specificata più di una classe di base, il modello di ereditarietà viene chiamato Ereditarietà multipla.

Vengono trattati gli argomenti seguenti:

Le parole chiave __super e __interface sono documentate in questa sezione.

Vedi anche

Riferimenti al linguaggio C++