作者boiq (olo)
看板EE_DSnP
标题[问题] new之後马上delete(已解决)
时间Fri Dec 21 19:09:28 2012
已解决
用 ptr = new(ptr2) xxclass;
可以保证ptr跟ptr2位置一样
(大小不一样就不保证....XD)
===========================================
我又来连问问题了
如果一个BaseClass的pointer先被new过了
BaseClass* ptr = new Child1Class;
再把它delete掉
delete ptr;
然後再重新new另一种child给他
ptr = new Child2Class;
这样子记忆体位置会一定一样吗?
如果两个Childclass的sizeof大小一样的话@@
还是不同的compiler会有不同的可能性@@
如果会不一样的话那只好改写了orz
感谢~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.25.108
1F:推 keyboardle:如果你一定要一样可以试试new(ptr) Child2Class 12/21 19:31
2F:→ keyboardle:但我不觉得有必要用这样的写法.你的用途是? 12/21 19:31
3F:→ boiq:感谢我试试看,我的用途是把UNDEF删掉new AIG 上去 12/21 20:02
4F:→ boiq:可是如果pointer位置会不一样的话那麽fanin/out的connect会断 12/21 20:03
※ 编辑: boiq 来自: 140.112.25.108 (12/21 20:24)
5F:推 steve1012:感觉可以全部存base class 的ptr吧~ 12/21 21:59
6F:→ steve1012:就不用烦恼了 12/21 21:59
7F:推 ric2k1:记忆体位置应该不一定会一样哦! 毕竟记忆体是系统配置的, 12/21 22:28
8F:→ ric2k1:这样的假设会很危险!! 12/21 22:28