匿名类类型

类可以是匿名的 - 也就是说,可以在没有 identifier 的情况下声明类。 在将类名称替换为 typedef 名称时,这会很有用,如下所示:

typedef struct
{
    unsigned x;
    unsigned y;
} POINT;

备注

上面示例中显示的匿名类的用法对于保留与现有 C 代码的兼容性很有用。在某些 C 代码中,将 typedef 与匿名结构结合使用是很普遍的。

如果您希望对类成员的引用就像它未包含在独立类中的情况一样出现,则匿名类也很有用,如下所示:

struct PTValue
{
    POINT ptLoc;
    union
    {
        int  iValue;
        long lValue;
    };
};

PTValue ptv;

在上面的代码中,可以使用对象成员选定内容运算符 (.) 访问 iValue,如下所示:

int i = ptv.iValue;

匿名类受某些限制的约束。(有关匿名联合的详细信息,请参阅联合。)匿名类:

  • 不能具有构造函数或析构函数。

  • 不能作为函数的参数传递(除非使用省略号使类型检查无效)。

  • 无法作为函数中的返回值返回。

请参见

参考

定义类类型