class (C++)

L’mot clé class déclare un type de classe ou définit un objet d’un type de classe.

Syntaxe

[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, reportez-vous aux modèles.

class
Le mot clé class.

ms-decl-spec
Spécification de classe de stockage facultative. Pour plus d’informations, reportez-vous au mot clé __declspec.

tag
Nom de type donné à la classe. La balise devient un mot réservé dans l’étendue 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 de classes ou de structures dont cette classe dérivera ses membres. Pour plus d’informations, consultez Classes de base. Chaque classe de base ou nom de structure peut être précédé d’un spécificateur d’accès (public, privé, protégé) et du mot clé virtuel. Pour plus d’informations, consultez la table d’accès aux membres d’accès aux membres de la classe.

member-list
Liste des membres de classe. Pour plus d’informations, reportez-vous à la vue d’ensemble des membres de la classe.

declarators
Liste de déclarateurs spécifiant les noms d’une ou plusieurs instances du type de classe. Les déclarateurs peuvent inclure des listes d’initialiseurs si tous les membres de données de la classe sont public. Cela est plus courant dans les structures, dont les membres de données sont public par défaut, que dans les classes. Pour plus d’informations, consultez Vue d’ensemble des déclarateurs .

Notes

Pour plus d’informations sur les classes en général, reportez-vous à l’une des rubriques suivantes :

Pour plus d’informations sur les classes managées et les structs dans C++/CLI et C++/CX, consultez Classes et Structs

Exemple

// 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;
}

Voir aussi

Mots clés
Classes et structs