一个堆分配的对象切割问题!(在VC下调试有不解之处)
角色:CObject:支持RTTI。CPerson派生至CObject也支持RTTI,有一个age,virtual
GetAge()成员,无任何重载。
void main(void)
{
CPerson *pMy = new CPerson(21);
CObject *pMyObject = pMy;
if ( pMyObject->IsKindOf( RUNTIME_CLASS(CPerson) ) )
{
CPerson *pMyPerson = (CPerson *) pMyObject;
cout << "yes!" << endl;
delete pMyObject;
pMyPerson = pMy;
}
else
{
cout << "no!" << endl;
delete pMyObject;
}
getchar();
}
首先pMyObject是不是CPerson类的对象?
上面delete pMyObject 和delete pMy 在vc6.0中的效果是不是一样的?会不会引起
memory leak? delete是根据sizeof(OBJECT)来释放内存的?
请指点!
问题点数:20、回复次数:1Top
1 楼bskay() bskay() bskay()回复于 2002-01-12 21:12:10 得分 20
上面delete pMyObject 和delete pMy 在vc6.0中的效果是一样的
不会引起 memory leak
delete是根据“西够喊书”来释放内存的Top




