Compartilhar via


Uso de typedef com tipos de classe

Usar o typedef especificador de tipos de classe é suportado principalmente por causa da prática ANSI C da declaração de estruturas sem nome no typedef declarações.Por exemplo, muitos programadores c usam o seguinte:

// 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;

A vantagem de tal uma declaração é que ele permite que a declaração como:

POINT ptOrigin;

em vez de:

struct point_t ptOrigin;

No C++, a diferença entre typedef nomes e tipos reais (declarado com o classe, struct, união, e enum as palavras-chave) é mais nítida.Embora a prática c de declarar uma estrutura sem nome em um typedef instrução ainda funciona, mas não fornece nenhuma notação benefícios, como acontece em c.

// typedef_with_class_types2.cpp
// compile with: /c /W1
typedef struct {
   int POINT();
   unsigned x;
   unsigned y;
} POINT;

O exemplo anterior declara uma classe chamada POINT usando a classe sem nome typedef sintaxe.POINTé tratada como um nome de classe; No entanto, as seguintes restrições se aplicam aos nomes apresentados dessa forma:

  • O nome (sinônimo) não pode aparecer após um classe, struct, ou união prefixo.

  • O nome não pode ser usado como nomes de construtor ou destrutor dentro de uma declaração de classe.

Em resumo, essa sintaxe não fornece qualquer mecanismo de herança, construção ou destruição.

Consulte também

Referência

Especificador de TypeDef