effective c++ 条款10的问题

firsthym 2009-04-06 09:51:11
class Airplane { // 修改后的类 — 支持自定义的内存管理
public: //
static void * operator new(size_t size);
...
private:
union {
AirplaneRep *rep; // 用于被使用的对象
Airplane *next; // 用于没被使用的(在自由链表中)对象
};
// 类的常量,指定一个大的内存块中放多少个
// Airplane 对象,在后面初始化
static const int BLOCK_SIZE;
static Airplane *headOfFreeList;
};

请解释下,使用union的目的和作用,不是很明白。
...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyond071 2009-04-06
  • 打赏
  • 举报
回复
union是对同一段存储空间的不同的解释
xylicon 2009-04-06
  • 打赏
  • 举报
回复
union的用法和作用大家都说了,其实
这里使用union的目的是就是要节省空间。
ayw215 2009-04-06
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
union是基本语法啊.
AirplaneRep *rep; // 用于被使用的对象
Airplane *next; // 用于没被使用的(在自由链表中)对象
这2个对象从相同的起始地址开始存储.
  • 打赏
  • 举报
回复
union是基本语法啊.
AirplaneRep *rep; // 用于被使用的对象
Airplane *next; // 用于没被使用的(在自由链表中)对象
这2个对象从相同的起始地址开始存储.
cppzhentan 2009-04-06
  • 打赏
  • 举报
回复
联合表示几个变量公用一个内存位置, 在不同的时间保存不同的数据类型 和不同长度的变量。
bitxinhai 2009-04-06
  • 打赏
  • 举报
回复
就是用来标识链表节点对象的类型,
链表中有很多的节点,有的被使用,有的没有使用,
就是靠这个union辨别的

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧