NewLC()表示,对象的压入了清除栈,而且直到函数返回时,对象还在栈上面
NewL()是静态的方法
Eg
CZ* CZ::NewL()
{
CZ * self = new(ELeave)CZ;
CleanupStack::PushL(self);
self->ConstrutcL() 2次构造
CleanupStack::Pop(self);
return self;
}
NewLC()与 NewL区别
在 NewLC() 中, CZ还在清理栈中
Eg.
CZ* CZ::NewLC()
{
CZ * self = new(ELeave)CZ;
CleanupStack::PushL(self);
self->ConstrutcL() 2次构造
//CleanupStack::Pop(self); //这步没有
return self;
}
对上面的例子使用 NewLC()
CZ *z = CZ::NewL();
Z->run();
CleanupStack::PopAndDestroy(self);
对上面的例子使用 NewL()
CZ *z = CZ::NewL();
Z->run();
Delete z;