有人可以提一下普通联合和匿名联合(或结构)之间的区别吗?我刚刚找到一个:
函数不能在匿名联合中定义。
问问题
1542 次
2 回答
7
您不需要点运算符“。” 访问匿名联合元素。
#include <iostream>
using namespace std;
int main() {
union {
int d;
char *f;
};
d = 4;
cout << d << endl;
f = "inside of union";
cout << f << endl;
}
在这种情况下,这将成功编译,但对于正常的 Union,则为“NO”。
此外,匿名工会只能有公共成员。
PS:简单地省略语法的类名部分不会使联合成为匿名联合。对于有资格作为匿名联合的联合,声明不能声明对象。
于 2013-06-15T12:12:27.870 回答
0
据我所知,标准 C++ 中不存在匿名结构,尽管某些编译器可能支持它们。
匿名工会不能有受保护或私人成员。成员在不使用联合名称的情况下访问(显然,因为它没有一个!)。全局匿名工会(上帝保佑)必须声明为静态的。
于 2013-06-15T12:02:19.020 回答