bug:指向类的指针赋空 error: ambiguous overload for 'operator=' inXXX

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指向类的指针赋空,

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</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值