为了与选件类类型的typedef的使用

对于使用类类型的 typedef 说明符的主要使用支持由于声明在 typedef 声明中使用未命名的结构 ANSI C 实践。 例如,许多 C 编程没有使用以下语句:

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

此类声明中的优点是它启用声明如下:

POINT ptOrigin;

而不是:

struct point_t ptOrigin;

在 C++ 中,在 typedef 名称和实类型 (声明 , struct、 联合和 enum 关键字) 之间的差别更加明显的。 虽然声明在 typedef 语句的一无名称的结构 C 实践仍然起作用,它不提供标志优点,它在 C. 执行。

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

前面的示例声明一个名为的类。 POINT 使用未命名的类 typedef 语法。 POINT 将类名;但是,以下限制适用于名称引入示:

  • 该名称 (同义词) 无法在 、 struct或 联合 前缀后面。

  • 名称不能用作在类声明中的构造函数或析构函数名称。

总之,该语法是继承、构造或析构不提供任何机制。

请参见

参考

typedef说明符