Condividi tramite


Membri di classe

Le classi possono disporre dei seguenti tipi di membri:

Note

L'elenco dei membri di una classe può essere suddiviso in sezioni private, protected e public utilizzando le parole chiave note come identificatori di accesso. I due punti : devono seguire l'identificatore di accesso. Queste sezioni non devono essere contigue, ovvero, queste parole chiave possono essere visualizzate diverse volte nell'elenco dei membri. La parola chiave consente di accedere a tutti i membri fino all'identificatore di accesso successivo o alla parentesi graffa di chiusura.

Le dichiarazioni dei membri nell'elenco dei membri sono separate da punti e virgola ;. Vedere la pagina relativa alla sintassi di dichiarazione dei membri di classe.

Lo scopo dell'elenco dei membri è di:

  • Dichiarare il set completo di membri per una determinata classe.

  • Specificare l'accesso (pubblico, privato o protetto) associato ai diversi membri di classi.

Nella dichiarazione di un elenco di membri è possibile dichiarare i membri una sola volta; la ridichiarazione dei membri genera un messaggio di errore. Poiché un elenco di membri costituisce un set completo dei membri, non è possibile aggiungere membri a una determinata classe con dichiarazioni di classe successive.

I dichiaratori di membro non possono contenere inizializzatori. La fornitura di un inizializzatore genera un messaggio di errore come illustrato nel codice seguente:

// class_members1.cpp
// C2864 expected
class CantInit
{
public:
    long l = 7;       // Error: attempt to initialize
                      //  class member.
    static int i = 9; // Error: must be defined and initialized
                      // outside of class declaration.
};
int main()
{
}

Poiché per ogni oggetto di un tipo di classe specifico viene creata un'istanza separata dei dati dei membri non statici, il modo corretto per inizializzare i dati dei membri consiste nell'utilizzare il costruttore della classe. I costruttori vengono illustrate in Costruttori,).

Esiste una sola copia condivisa dei membri dei dati statici per tutti gli oggetti di un tipo di classe specifico. I membri dei dati statici devono essere definiti e possono essere inizializzati in ambito file. Per ulteriori informazioni sui membri di dati statici, vedere Membri di dati statici. Nell'esempio riportato di seguito viene mostrato come eseguire queste inizializzazioni.

// class_members2.cpp
class CanInit
{
public:
    CanInit() { l = 7; } // Initializes l when new objects of type 
                         //  CanInit are created.
    long       l;
    static int i;
    static int j;
};

// i is defined at file scope and initialized to 15.
// The initializer is evaluated in the scope of CanInit.
int CanInit::i = 15;                                                       

// The right side of the initializer is in the scope 
// of the object being initialized
int CanInit::j = i;  

int main()
{
}

Nota

Il nome della classe, CanInit, deve precedere i per specificare che i da definire è un membro della classe CanInit.

Sezione specifica Microsoft

Microsoft C++ consente l'inizializzazione dei membri dati static, const integral e const enum nella definizione di classe. Vedere la pagina relativa alle estensioni Microsoft in C e C++.

Vedere anche

Riferimenti

Classi, strutture e unioni