先上代码,no code no say
/*
class Point{
//...
};
*/
Point *pPoint = new Point; //1
Point point; //2
*pPoint = point; //3
//...
delete pPoint //4
关于步骤1new可分解为如下:
//cpp为代码
Point *pPoint = __new( sizeof(Point)); //5
if(pPoint)
{
pPoint->Point::Point();
}
步骤3,是不是就是调用Point的拷贝赋值函数?
步骤4删除该指针就是针对步骤5进行分配的内存进行释放?
我这样理解是否有错?
迷茫2017-04-17 11:29:19
步驟3理解的沒有問題,步驟4也沒有問題,但是應在增加一步 pPoint = NULL。因為你的delete 只是告訴程式這個指標我不要了,記憶體被釋放掉,指標仍指向那個內存,可能會帶來問題。