class (C++)
Le mot clé class déclare un type de classe ou définit un objet d'un type de classe.
[template-spec] class [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[ class ] tag declarators;
Paramètres
template-spec
Spécifications de modèle facultatives. Pour plus d'informations, consultez Spécifications de modèle.class
Le mot clé class.ms-decl-spec
Spécification de classe de stockage facultative. Pour plus d'informations, consultez le mot clé __declspec.tag
Le nom de type donné à la classe. La balise devient un mot réservé dans la portée de la classe. La balise est facultative. Si elle est omise, une classe anonyme est définie. Pour plus d'informations, consultez Types de classes anonymes.base-list
Liste facultative des classes ou structures dont dérivent les membres de cette classe. Consultez Classes de base pour plus d'informations. Chaque nom de classe de base ou de structure peut être précédé d'un spécificateur d'accès (public, privé ou protégé) et du mot clé virtuel. Consultez le tableau d'accès aux membres dans Contrôle de l'accès aux membres de classe, pour plus d'informations.member-list
Liste des membres de la classe. Pour plus d'informations, consultez Membres de classe.declarators
Liste des déclarateurs spécifiant les noms d'une ou plusieurs instances du type de la classe. Les déclarateurs peuvent inclure des listes d'initialiseurs si toutes les données membres de la classe sont public. Ceci est plus courant dans les structures, dont les données membres sont par défaut public, que dans les classes. Consultez Vue d'ensemble des déclarateurs pour plus d'informations.
Notes
Pour plus d'informations sur les classes en général, consultez l'une des rubriques suivantes :
Pour plus d'informations sur les classes et les structures managées, consultez Classes et structures.
Exemple
// 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;
}