c++ - 如何使用匿名结构或类?

标签 c++ class struct anonymous

那么,声明匿名类或结构是可能的,但如何使它有用呢?

int main() {
    class{
        int ClassVal;
    };
    struct{
        short StructVal;
    };
    StructVal = 5;   //StructVal is undefined
    ClassVal = 5;    //ClassVal is undefined too?
    return 0;
}

如果将它们都放在主函数之外,它们也将无法访问。 我问这个只是因为它有点有趣:)

编辑: 为什么 main 函数之外的 union (在全局范围内)必须是静态声明的 例如:

static struct {
    int x;
};
int main() {
   //...
}

最佳答案

匿名类和结构可用于直接定义变量:

int main()
{
    class
    {
        int ClassVal;
    } classVar;

    struct
    {
        short StructVal;
    } structVar;

    structVar.StructVal = 5;
    classVar.ClassVal = 5;

    return 0;
}

上面的不是很常见,但如 Simon Richter 在他的回答中所述,在 union 中使用时非常常见。

关于c++ - 如何使用匿名结构或类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164626/

相关文章:

c# - 从 IronPython 实例化自定义 C# 类

c - 指向结构的指针是指向其第一个成员的指针吗?

swift - Swift 中的结构数组

c++ - 从嵌入式 v8 调用 WebAssembly,无需 JS

c++ - 传递包装器使用的非托管成员函数指针,以将其连接到 c++/cli 中的信号

c++ - 'ld : symbol(s) not found for architecture ? ? ?' even when it' 在那里

c++ - 简单的 openGL 线图程序没有输出?

CSS 类(求助!)

c++ - 最令人烦恼的解析困惑

c - 分配给 C 中的数据结构的不兼容类型