You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QSharedPointer<T>与T*指针的比较:直接判等是否可行?

QSharedPointer与原始指针直接比较是否有效?

你给出的代码示例:

MyClass* object = new MyClass;
QSharedPointer<MyClass> sharedObject (object);

if(object == sharedObject)
   return true; // 若相等

这种比较方式完全可以正确执行。

Qt的QSharedPointer类重载了operator==运算符,支持直接和原始指针做地址对比。当执行object == sharedObject时,底层会自动取出sharedObject内部管理的原始指针,和object的地址进行比较——只要两者指向同一个对象,这个判断就会返回true。

反过来写sharedObject == object也能得到相同的结果,因为运算符重载支持这种对称写法。

这种直接比较的方式简洁可靠,常用于确认某个原始指针是否被目标智能指针托管的场景。


内容的提问来源于stack exchange,提问作者Andrey Strokov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:33:10