class (C++)

La palabra clave class declara un tipo de clase o define un objeto de un tipo de clase.

Sintaxis

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

Parámetros

template-spec
Especificaciones de plantilla opcionales. Para obtener más información, consulta Plantillas.

clase
La palabra clave class.

ms-decl-spec
Especificación opcional de clase de almacenamiento. Para más información, consulte la palabra clave __declspec.

tag
Nombre del tipo asignado a la clase. La etiqueta se convierte en una palabra reservada dentro del ámbito de la clase. La etiqueta es opcional. Si se omite, se define una clase anónima. Para más información, consulte Tipos de clase anónimos.

base-list
Lista opcional de clases o de estructuras de las que esta clase derivará sus miembros. Consulte Clases base para más información. Cada nombre de clase base o de estructura puede ir precedido de un especificador de acceso (public, private, protected) y la palabra clave virtual. Consulte la tabla de acceso a miembros en Controlar el acceso a los miembros de clase para más información.

member-list
Lista de miembros de clase. Consulte Información general sobre miembros de clase para más información.

declarators
Lista de declaradores que especifica los nombres de una o más instancias del tipo de clase. Los declaradores pueden incluir listas de inicializadores si todos los miembros de datos de la clase son public. Esto es más frecuente en las estructuras, cuyos miembros de datos son public de forma predeterminada, que en las clases. Consulte Información general sobre declaradores para más información.

Comentarios

Para obtener más información sobre las clases en general, vea uno de los temas siguientes:

Para obtener información sobre las clases y estructuras en C++/CLI y C++/CX, consulta Clases y estructuras

Ejemplo

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

Consulte también

Palabras clave
Clases y structs