那么,声明匿名类或结构是可能的,但如何使它有用呢?
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/