placement new和TObject的问题
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分配了内存,有人知道原因吗?