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

Voir aussi

Référence

Mots clés C++

Classes, structures et unions