匿名工会和正常工会

时间:2013-06-15 09:30:08

标签: c++ c struct unions

有人可以提一下普通和匿名联盟(或结构)之间的区别吗? 我刚刚找到一个:
函数不能在匿名联合中定义。

2 个答案:

答案 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 ++中不存在匿名结构,尽管某些编译器可能支持它们。

匿名工会不能拥有受保护或私人成员。访问成员时不使用联合的名称(显然,因为它没有!)。全球匿名工会(上帝保佑)必须被宣布为静态。