Uso typedef con los tipos de clase
El uso del especificador de typedef con los tipos de clase se admite en gran medida debido a la práctica de ANSI C de declarar las estructuras sin nombre en las declaraciones de typedef .Por ejemplo, mucho uso de C Partes lo siguiente:
// typedef_with_class_types1.cpp
// compile with: /c
typedef struct { // Declare an unnamed structure and give it the
// typedef name POINT.
unsigned x;
unsigned y;
} POINT;
La ventaja de esta declaración es que permite declaraciones como:
POINT ptOrigin;
en lugar de:
struct point_t ptOrigin;
En C++, la diferencia entre los nombres de typedef y los tipos reales (declarados con clase, struct, union, y las palabras clave de enum ) es más distinta.Aunque todavía funciona práctica de C de declarar una estructura anónima en una instrucción de typedef , no proporciona ningún beneficio notational como en C.
// typedef_with_class_types2.cpp
// compile with: /c /W1
typedef struct {
int POINT();
unsigned x;
unsigned y;
} POINT;
El ejemplo anterior declara una clase denominada POINT mediante la sintaxis sin nombre de typedef de la clase.POINT se trata como nombre de clase; sin embargo, las siguientes restricciones se aplican a los nombres introdujeron de esta manera:
El nombre (el sinónimo) no puede aparecer después de clase, de struct, o de union .
el nombre no se puede utilizar como constructor o nombres de destructor dentro de una declaración de clase.
En resumen, esta sintaxis no proporciona ningún mecanismo para la herencia, la construcción, o destrucción.