指向类的指针赋空,
typedef CallbackObjectHolder<DataCallback, int> OnDataRecvCallbackHolder;
OnDataRecvCallbackHolder *sOnDataRecvCallback=NULL;
nsresult
MozAdhoc::AddDataRecvListener(DataCallback& aCallback)
{//注册时暂存
int RegFuncNum = 1 ;
ADHOCLOG("MozAdhoc::AddDataRecvListener");
sOnDataRecvCallback=new OnDataRecvCallbackHolder(&aCallback);//保存,
RegisterCallBackListener(RegFuncNum);//注册底层so库回调,
return NS_OK;
}
nsresult
MozAdhoc::RemoveDataRecvListener()
{
if(NULL != sOnDataRecvCallback)
{//指针不为空,则已添加listener
int RegFuncNum = 4 ;
delete sOnDataRecvCallback;
sOnDataRecvCallback=NULL;
ADHOCLOG("addr %p",sOnNetWorkStatusCallback);
RegisterCallBackListener(RegFuncNum);//注册底层so库回调,
}else{
ADHOCLOG("###########sorry, not add listener yet !!!!remove nothing! addXXXlistener first,then call this interface again!########### ");
}
return NS_OK;
}
类不能直接赋空,会报
error: ambiguous overload for 'operator=' inXXX</

本文讨论了在C++中,为何指向类的指针直接赋空会导致编译错误,指出正确做法是使用`new`和`delete`。解释了对象和指针在内存中的分配位置、生命周期以及成员访问的不同。同时强调了虚函数与多态的关系,指针是实现多态的关键,并提醒程序员注意使用`new`时务必配合`delete`以避免内存泄漏。
最低0.47元/天 解锁文章
4227

被折叠的 条评论
为什么被折叠?



