Cenni preliminari sulle classi derivate
Le nuove classi possono essere derivate dalle classi esistenti mediante un meccanismo denominato "ereditarietà" (vedere le informazioni fornite 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 base, vedere Controllo dell'accesso ai membri. 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. Per ulteriori informazioni, vedere Classi base virtuali.
È possibile specificare più classi base, separandole con virgole. Se si specifica una classe singola, il modello di ereditarietà è Ereditarietà singola. Se si specificano più classi base, il modello di ereditarietà è denominato Ereditarietà multipla,