有人可以提一下普通和匿名联盟(或结构)之间的区别吗?
我刚刚找到一个:
函数不能在匿名联合中定义。
答案 0 :(得分: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;
}
在这种情况下,这将成功编译,但对于普通联盟,则为“否”。
此外,匿名工会只能有公共成员。
PS:简单地省略语法的类名部分就没有了 工会是一个匿名工会。使工会有资格成为匿名者 联合,声明不得声明对象。
答案 1 :(得分:0)
据我所知,标准C ++中不存在匿名结构,尽管某些编译器可能支持它们。
匿名工会不能拥有受保护或私人成员。访问成员时不使用联合的名称(显然,因为它没有!)。全球匿名工会(上帝保佑)必须被宣布为静态。