Compartir a través de


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.

Vea también

Referencia

especificador typedef