1、问题描述
在走读QtCreator源码时,看到如下运算符重载
源码在QtCreator-v4.9.2中 src\plugins\projectexplorer\projectexplorer.h
class OpenProjectResult
{
public:
OpenProjectResult(const QList<Project *> &projects, const QList<Project *> &alreadyOpen,const QString &errorMessage): m_projects(projects),
m_alreadyOpen(alreadyOpen),
m_errorMessage(errorMessage)
{ }
explicit operator bool() const
{
return m_errorMessage.isEmpty() && m_alreadyOpen.isEmpty();
}
...
}
突然看见这个函数 explicit operator bool() const:一时没明白这个运算符重载的是什么。bing后才知道,本类型对象到bool的隐式转换。
使用方法,以上面OpenProjectResult类为例
OpenProjectResult result;
if (result)...