class (C++)
La palabra clave class declara un tipo de clase o define un objeto de un tipo de clase.
[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, vea Especificaciones de plantilla.class
Palabra clave class.ms-decl-spec
Especificación opcional de clase de almacenamiento. Para obtener más información, vea la palabra __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 obtener más información, vea Tipos de clase anónimos.base-list
Lista opcional de clases o de estructuras de las que esta clase derivará sus miembros. Vea Clases base para obtener 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. Vea la tabla de acceso a miembros en Controlar el acceso a miembros de clase para obtener más información.member-list
Lista de miembros de clase. Vea Miembros de clase para obtener 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. Vea Información general sobre los declaradores para obtener 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 administradas y los structs, vea Clases y structs.
Ejemplo
// 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;
}