Condividi tramite


Classi astratte (C ++)

Le classi astratte fungono da espressioni di concetti generali da cui è possibile derivare classi più specifiche. Non è possibile creare un oggetto di un tipo di classe astratta; tuttavia, è possibile utilizzare i puntatori e i riferimenti ai tipi di classe astratta.

Una classe che contiene almeno una funzione virtuale pura è considerata una classe astratta. Le classi derivate dalla classe astratta devono implementare la funzione virtuale pura o sono anch'esse classi astratte.

Una funzione virtuale viene dichiarata come "pura" tramite la sintassi di pure-specifier (descritta in Implementazione del protocollo di classe. Si consideri l'esempio illustrato in Funzioni virtuali. Lo scopo della classe Account è di fornire la funzionalità generale, ma gli oggetti di tipo Account sono troppo generici per essere utili. Pertanto, Account rappresenta una scelta valida per una classe astratta:

// deriv_AbstractClasses.cpp
// compile with: /LD
class Account {
public:
   Account( double d );   // Constructor.
   virtual double GetBalance();   // Obtain balance.
   virtual void PrintBalance() = 0;   // Pure virtual function.
private:
    double _balance;
};

L'unica differenza tra questa dichiarazione e la precedente è che PrintBalance è dichiarato con l'identificatore pure (= 0).

Vedere anche

Riferimenti

Classi derivate