4.11.2 Declaración de una nueva clase
§1 Sinopsis
Como se ha señalado anteriormente, la declaración de una nueva clase puede efectuarse básicamente de tres formas: por definición (partiendo desde cero), por herencia simple (derivando de una clase anterior) y por composición o herencia múltiple (heredando de varias clases-base).
§2 Sintaxis
En cualquier caso, la declaración de una nueva clase utiliza una expresión cuya sintaxis general es la siguiente:
class-key <info> nomb-clase <: lista-base> { <lista-miembros> };
Significado de los diversos componentes:
<class-key> es alguna de las palabras clave class, struct o union [1].
<info> opcional. Indica una petición de información en tiempo de ejecución sobre la clase. Puede compilarse con la opción –RT ( 4.9.14), o puede usarse la palabra clave __rtti.
<nomb-clase> es el identificador (nombre) de la nueva clase (4.11.3). Es costumbre que al menos la inicial del nombre de las clases sea mayúscula.
<: lista-base> opcional. En caso que la clase derive de otra/s relaciona la/s clase/s base (ancestros) de las que la nueva hereda propiedades y métodos. En este caso se dice que nomb-clase es una clase derivada. La lista-base puede tener especificadores de acceso (opcionales y por defecto 4.11.2b) que pueden modificar la forma en que los miembros de la clase derivada heredan los privilegios de acceso que tenían en la clase antecesora.
<lista-miembros> opcional. Declara los miembros de la nueva clase (propiedades y métodos) con especificadores de acceso (opcionales y por defecto 4.11.2a), que pueden especificar que métodos y propiedades son accesibles y cómo, desde el exterior.
[1] Las estructuras y uniones C++ son consideradas clases con ciertas propiedades por defecto. Por ejemplo, todos sus miembros son públicos, y no suelen tener métodos.