placement new和TObject的问题

gzliudan gzliudan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class TInfo1 : public TObject
{
public:
int i;
};

class TInfo2
{
public:
int i;
};

char buf1[100];
char buf2[100];

TInfo1 * pData1 = new(buf1) TInfo1;
TInfo2 * pData2 = new(buf2) TInfo2;

ShowMessage( "pData1=" + String( DWORD( pData1 ) ) + ", buf1=" + String( DWORD( buf1 ) ) );
ShowMessage( "pData2=" + String( DWORD( pData2 ) ) + ", buf2=" + String( DWORD( buf2 ) ) );

以上代码会显示pData1和buf1的地址不相等,pData2和buf2的地址相等,也就说继承TObject类后,placement new的用法没起作用,虽然系统用缺省的new分配了内存,有人知道原因吗?
...全文
评论 2
收藏 已收藏
分享
返回顶部
gzliudan
C++ Builder 13,871 成员 102,696 内容