rainfish 发表于 2008-12-17 22:33:07

关于ACE_Message_Block自动析构的问题

不要意思啊,好像一直我在问问题。
《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(),内存就能释放?感觉不可能,如果不对,那么自动析构又是什么意思?实在不解。

rainfish 发表于 2008-12-18 20:43:05

回复 #1 rainfish 的帖子

请高手帮帮忙,着急啊

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的自动析构功能。

winston 发表于 2008-12-19 11:08:00

我们一直都不知道你问的是什么问题,所以没人回答。。。
页: [1]
查看完整版本: 关于ACE_Message_Block自动析构的问题