为了与选件类类型的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或 联合 前缀后面。
名称不能用作在类声明中的构造函数或析构函数名称。
总之,该语法是继承、构造或析构不提供任何机制。