首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QSharedPointer::isNull()和运算符之间的区别!()

QSharedPointer::isNull()和运算符之间的区别!()
EN

Stack Overflow用户
提问于 2013-11-12 09:43:15
回答 2查看 3.7K关注 0票数 3

在Qt文档中,我们看到:

代码语言:javascript
运行
复制
bool QSharedPointer::operator! () const

Returns true if this object is null. 
This function is suitable for use in if-constructs, like:

 if (!sharedptr) { ... }

代码语言:javascript
运行
复制
bool QSharedPointer::isNull () const
Returns true if this object is holding a reference to a null pointer.

这两种功能有什么区别?这很清楚什么是引用空指针,但是这里的意思是什么?

“如果对象为空”?

如何确定QSharedPointer 是否为空?这些函数如何与QSharedPointer::data() != null相对应?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-12 10:49:29

来自QSharedPointer类的Qt源:

代码语言:javascript
运行
复制
inline bool operator !() const { return isNull(); }

这证实了@JoachimPileborg在他的评论中所说的- isNull()函数和operator!()是等价的。

票数 5
EN

Stack Overflow用户

发布于 2013-11-12 09:51:18

“空”QSharedPointer包装T* t,其中t= 0/NULL/nullptr。这就是"object is null“的意思

isNull()和operator!()是等价的,您可以使用任何一个。

默认情况下,共享指针为空,或者当显式设置为0/nullptr时:

代码语言:javascript
运行
复制
QSharedPointer<T> t; //null
QSharedPointer<T> t2(new T); //not null
QSharedPointer<T> t3(0); //null
QSharedPointer<T> t4(nullptr); //null
t2.clear(); //not null before, now null
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19925693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档