Freigeben über


class (C++)

Das class-Schlüsselwort deklariert einen Klassentyp oder definiert ein Objekt eines Klassentyps.

[template-spec] class [ms-decl-spec] [tag [: base-list ]]
{
   member-list 
} [declarators];
[ class ] tag declarators;

Parameter

  • template-spec
    Optionale Vorlagenspezifikationen. Weitere Informationen finden Sie unter Vorlagenspezifikationen.

  • class
    Das class-Schlüsselwort.

  • ms-decl-spec
    Optionale Speicherklassenspezifikation. Weitere Informationen finden Sie im Zusammenhang mit dem __declspec-Schlüsselwort.

  • tag
    Der Typname, der für die Klasse angegeben wurde. Das Tag ist ein reserviertes Wort innerhalb des Gültigkeitsbereichs der Klasse. Das Tag ist optional. Wenn es nicht angegeben wird, wird eine anonyme Klasse definiert. Weitere Informationen finden Sie unter Anonyme Klassentypen.

  • base-list
    Optionale Liste von Klassen oder Strukturen, von denen diese Klasse ihre Member ableitet. Weitere Informationen finden Sie unter Basisklassen. Jedem Basisklassen- oder Strukturnamen kann ein Zugriffsspezifizierer (public, private, protected) und das virtual-Schlüsselwort vorangestellt werden. Weitere Informationen finden Sie in der Memberzugriffstabelle unter Steuern des Zugriffs auf Klassenmember.

  • member-list
    Liste von Klassenmembern. Weitere Informationen finden Sie unter Klassenmember.

  • declarators
    Deklaratorliste, die die Namen von mindestens einer Instanz eines Klassentyps festlegt. Deklaratoren können Initialisierungslisten enthalten, wenn alle Datenmember der Klasse public sind. Dies tritt in Strukturen, deren Datenmember standardmäßig public sind, häufiger auf als in Klassen. Weitere Informationen finden Sie unter Übersicht über Deklaratoren.

Hinweise

Weitere Informationen zu Klassen im Allgemeinen finden Sie in einem der folgenden Themen:

Informationen über verwaltete Klassen und Strukturen finden Sie unter Klassen und Strukturen.

Beispiel

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

Siehe auch

Referenz

C++-Schlüsselwörter

Klassen, Strukturen und Unions