class (C++)
La class
parola chiave dichiara un tipo di classe o definisce un oggetto di un tipo di classe.
Sintassi
[template-spec]
class [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[ class ] tag declarators;
Parametri
specifica di modello
Specifiche facoltative del modello. Per altre informazioni, vedere Modelli.
class
La parola chiave class
.
ms-decl-spec
Specifica della classe di archiviazione facoltativa. Per altre informazioni, vedere la parola chiave __declspec .
tag
Nome del tipo assegnato alla classe. Il tag diventa una parola riservata nell'ambito della classe. Il tag è facoltativo. Se omesso, viene definita una classe anonima. Per altre informazioni, vedere Tipi di classe anonimi.
base-list
Elenco facoltativo delle classi o delle strutture da cui questa classe deriva i relativi membri. Per altre informazioni, vedere Classi di base. Ogni nome di classe o struttura di base può essere preceduto da un identificatore di accesso (public, private, protected) e dalla parola chiave virtual. Per altre informazioni, vedere la tabella di accesso ai membri membro in Controllo dell'accesso ai membri della classe.
member-list
Elenco dei membri della classe. Per altre informazioni, vedere Cenni preliminari sui membri della classe.
declarators
Elenco dei dichiaratori che specificano i nomi di una o più istanze del tipo di classe. I dichiaratori possono includere elenchi di inizializzatori se tutti i membri dati della classe sono public
. Questa operazione è più comune nelle strutture, i cui membri dati sono public
per impostazione predefinita, rispetto alle classi. Per altre informazioni, vedere Panoramica dei dichiaratori .
Osservazioni:
Per ulteriori informazioni sulle classi in generale, fare riferimento a uno dei seguenti argomenti:
Per informazioni su classi e struct gestiti in C++/CLI e C++/CX, vedere Classi e struct
Esempio
// class.cpp
// compile with: /EHsc
// Example of the class keyword
// Exhibits polymorphism/virtual functions.
#include <iostream>
#include <string>
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;
}