class (C++)
La parola chiave class dichiara un tipo di classe o definisce un oggetto del tipo di un classe.
[template-spec] class [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[ class ] tag declarators;
Parametri
template-spec
Specifiche facoltative del modello. Per ulteriori informazioni, vedere Specifiche dei modelli.class
Parola chiave class.ms-decl-spec
Specifica di classe di archiviazione facoltativa. Per ulteriori informazioni, fare riferimento alla parola chiave __declspec.tag
Il nome del tipo assegnato alla classe. Il tag diventa una parola riservata nello scope della classe. Il tag è facoltativo. Se omesso, viene definita una classe anonima. Per ulteriori informazioni, vedere Tipi di classe anonima.base-list
Elenco facoltativo di classi o strutture da cui questa classe deriverà i relativi membri. Per ulteriori informazioni, vedere Classi base. Ogni classe base o nome di struttura può essere preceduto da un indicatore di accesso (Public, Private, Protected) e dalla parola chiave virtuale. Per ulteriori informazioni, vedere la tabella di accesso ai membri in Controllo accessi ai membri della classe.member-list
Elenco dei membri della classe. Per ulteriori informazioni, fare riferimento a Membri di classe.declarators
Elenco dei dichiaratori che specifica i nomi di una o più istanze del tipo della classe. I dichiaratori possono includere gli elenchi degli inizializzatori se tutti i membri dati della classe sono public. È più comune nelle strutture, i cui membri dati sono public per impostazione predefinita, nelle classi. Per ulteriori informazioni, vedere Cenni preliminari sui dichiaratori.
Note
Per ulteriori informazioni sulle classi in generale, fare riferimento ad uno dei seguenti argomenti:
Per informazioni sulle classi gestite e le struct, vedere Classi e Struct.<
Esempio
// class.cpp
// compile with: /EHsc
// Example of the class keyword
// Exhibits polymorphism/virtual functions.
#include <iostream>
#include <string>
#define TRUE = 1
using namespace std;
class dog
{
public:
dog()
{
_legs = 4;
_bark = true;
}
void setDogSize(string dogSize)
{
_dogSize = dogSize;
}
virtual void setEars(string type) // virtual function
{
_earType = type;
}
private:
string _dogSize, _earType;
int _legs;
bool _bark;
};
class breed : public dog
{
public:
breed( string color, string size)
{
_color = color;
setDogSize(size);
}
string getColor()
{
return _color;
}
// virtual function redefined
void setEars(string length, string type)
{
_earLength = length;
_earType = type;
}
protected:
string _color, _earLength, _earType;
};
int main()
{
dog mongrel;
breed labrador("yellow", "large");
mongrel.setEars("pointy");
labrador.setEars("long", "floppy");
cout << "Cody is a " << labrador.getColor() << " labrador" << endl;
}