Sintaxis de la declaración de miembro de clase

Declaran miembros de datos de la clase y los miembros de la función normalmente después de las reglas para las declaraciones.Constan de, en este orden:

  • Especificadores de declaración.En las clases, los especificadores Estática de clase de almacenamiento y mutable para los miembros de datos.Se permite a los cv-calificadores const y volatile para los miembros de datos y de la función.Se permite que los especificadores friend, Estática, virtual y Alineado de declaración para las funciones, aunque friend indica una función que no es miembro.

  • declarantes sin inicializadores.En el caso de funciones virtuales, el especificador puro del formulario = 0 después de que el declarador de la función para especificar una función virtual pura (una función virtual sin una implementación en esa clase).

  • opcionalmente, campos de bits.Vea los campos de bits.

OR

  • definiciones de función.la definición de una función se puede incluir en la clase.Si una función miembro es definido, automáticamente se considera especificado.

OR

Los datos de miembro no se pueden declarar como Auto, extern, o clase de almacenamiento de Registrarse .Pueden, sin embargo, declarar como si tuvieran clase de almacenamiento de Estática .

Al declarar una clase de friend en una lista de miembros, puede omitir la lista de declaradores miembro.Para obtener más información sobre amigos, vea especificador friend y amigos.Aunque un nombre de clase no se ha introducido, se puede utilizar en una declaración de friend .Esta declaración de friend presenta el nombre.Sin embargo, en las declaraciones de miembro para estas clases, la sintaxis detallados de especificador de tipo se debe utilizar, como se muestra en el ejemplo siguiente:

// class_member_declaration_syntax.cpp
// compile with: /c
struct HasFriends {
   friend class NotDeclaredYet;
};

En el ejemplo anterior, no hay declarador de miembro que aparece después de la declaración de clase.Como la declaración para NotDeclaredYet aún no se ha procesado, se utiliza la forma elaborado el especificador de tipo: class NotDeclaredYet.Un tipo se ha declarado que puede especificar en una declaración de miembro de friend mediante un especificador de tipo normal:

// class_member_declaration_syntax2.cpp
// compile with: /c
struct AlreadyDeclared {};

struct HasFriends {
   friend AlreadyDeclared;
};

El especificador puro (que se muestra en el ejemplo siguiente) indica que no se proporciona ninguna implementación de la función virtual que se declara.Por consiguiente, el especificador puro sólo se puede especificar en funciones virtuales.Considere este ejemplo:

// class_member_declaration_syntax3.cpp
// compile with: /c
class StrBase {   // Base class for strings.
public:
   virtual int IsLessThan( StrBase& ) = 0;
   virtual int IsEqualTo( StrBase& ) = 0;
   virtual StrBase& CopyOf( StrBase& ) = 0;
};

El código anterior declara una clase base abstracta (es decir, una clase diseñada para usarse únicamente como clase base para las clases más específicas.Estas clases base pueden aplicar un protocolo determinado, o conjunto de funcionalidad, declarando una o varias funciones virtuales como funciones virtuales “puras”, con el especificador puro.

Las clases que heredan de la clase de StrBase deben proporcionar implementaciones para las funciones virtuales puras; si no, también, se consideran clases base abstractas.

las clases base abstractas no se pueden utilizar para declarar objetos.Por ejemplo, antes de que un objeto de un tipo heredado de StrBase puede declarar, las funciones IsLessThan, IsEqualTo, y CopyOf deben implementarse.(Para obtener más información sobre las clases base abstractas, vea clases abstractas.)

Vea también

Referencia

Miembros de clase