Udostępnij za pośrednictwem


Użyj typedef typu klasy

Korzystanie z typedef specyfikatora typu klasy jest obsługiwane w dużej mierze wynika z praktyki ANSI C deklarowania nienazwane struktur w typedef deklaracji.Na przykład wielu programistów c należy użyć następujących czynności:

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

Zaletą takiej deklaracji jest możliwość zgłoszenia, takich jak:

POINT ptOrigin;

zamiast:

struct point_t ptOrigin;

W języku C++, różnica między typedef nazwy i typy real (zadeklarowana z klasy, struct, Unii, i enum słowa kluczowe) jest różni się znacznie.Chociaż c praktyką deklarowanie nameless struktury w typedef instrukcji nadal działa, zapewnia żadnych korzyści notacji, co w C.

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

Poprzedni przykład deklaruje klasę o nazwie POINT za pomocą nazwy klasy typedef składni.POINTjest traktowana jako nazwa klasy; jednak do nazw wprowadzonych w ten sposób stosuje się następujące ograniczenia:

  • Nazwa (synonim) nie może pojawić się po klasy, struct, lub Unii prefiksu.

  • Nie można użyć nazwy jako nazwy konstruktora lub destruktor w deklaracji klasy.

Podsumowując tej składni nie dostarcza mechanizm dziedziczenia, budowa lub zniszczenie.

Zobacz też

Informacje

element TypeDef specyfikatora