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.