找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3411|回复: 3

关于ACE_Message_Block自动析构的问题

[复制链接]
发表于 2008-12-17 22:33:07 | 显示全部楼层 |阅读模式
不要意思啊,好像一直我在问问题。
《ACE程序员指南》上316页的一句话:“Command类扩展了ACE_Data_Block,以使我们能
利用ACE_Message_Block提供的自动析构功能”
其中Command继承于ACE_Data_Block,我的问题是 自动析构功能 是什么意思,我不用delete他吗?

比如:ACE_Message_Block* new_msg;
        ACE_NEW_RETURN( new_msg, ACE_Message_Block(64), -1);
我不用调用new_msg->release(),内存就能释放?感觉不可能,如果不对,那么自动析构又是什么意思?实在不解。
 楼主| 发表于 2008-12-18 20:43:05 | 显示全部楼层

回复 #1 rainfish 的帖子

请高手帮帮忙,着急啊
 楼主| 发表于 2008-12-18 21:12:38 | 显示全部楼层
明白了,是这样子的

比如:
        ACE_Data_Block *c;
        c = new ACE_Data_Block();
        ACE_Message_Block* new_msg;
        ACE_NEW_RETURN( new_msg, ACE_Message_Block(c), -1);
则 c的内存空间不用释放了,当用户调用new_msg->release();后c的空间会自动销毁,这就利用了ACE_Message_Block的自动析构功能。
发表于 2008-12-19 11:08:00 | 显示全部楼层
我们一直都不知道你问的是什么问题,所以没人回答。。。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-26 14:08 , Processed in 0.031250 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表