我发现联合是 C++ 中的类。
如果您将一个类声明为联合:
union Foo // 声明联合类型 { 字符 ch; int func(int a); };
联合的大小是 4 还是 1(假设 char 大小为 1 ,指针大小为 4 )?
我发现联合也是C++ 中的类。(强调我的)
不(它们是类类型,而不是类)。我的错,显然它们是类:
- [...]
- 联合,它们是能够在不同时间包含不同类型对象的类
- [...]
(不再相关)联合不能有virtual
成员函数,也不能用于继承。
上答案:
大小将足以容纳最大的数据成员。在这种情况下,很可能是1
,是的。
自己试试:
#include <iostream>
union Foo // Declare union type
{
char ch;
int func(int a);
};
int main()
{
std::cout << sizeof(Foo);
}
输出:
1