C++ 接线员是干什么的!!对字符串c++;
我想知道接线员的回报是什么!!关于C++中的<代码> 例如:C++ 接线员是干什么的!!对字符串c++;,c++,string,operators,C++,String,Operators,我想知道接线员的回报是什么!!关于C++中的 例如: if (!!mybstr) { doSomething() } else { doNothing() } 我假设它是一个布尔返回,但它是如何工作的呢 谢谢 如果封装的BSTR字符串为NULL,则返回true。所以!!如果封装的BSTR字符串不是NULL,,则mybstr将为true不是运算符。这只是的两个应用程序操作员。对于普通的bool值,净效果是不可操作的。对于具有到bool的隐式转换的类型,它有时用于强制转换到bool。对于带有运算符
if (!!mybstr)
{
doSomething()
} else {
doNothing()
}
我假设它是一个布尔返回,但它是如何工作的呢
谢谢 如果封装的
BSTR
字符串为NULL
,则返回true
。所以!!如果封装的BSTR
字符串不是NULL
,,则mybstr
将为true
代码>不是运算符。这只是的两个应用程序代码>操作员。对于普通的bool
值,净效果是不可操作的。对于具有到bool
的隐式转换的类型,它有时用于强制转换到bool
。对于带有运算符的类型代码>重载,根据操作符的语义,它可以做任何事情代码>如果您查看:
检查封装的BSTR是否为空字符串
所以如果你做了两次,那么你首先检查它是否为非空,然后如果不是,那么你基本上是在检查if(bstr)
。没有操作符代码>。它实际上是两个连续的代码>操作符。虽然它看起来像是这样的,但应用两次的“操作符”并不总是与“操作符布尔”相同,有些C++类只提供一个而不是另一个。
if (!!mybstr) = if (!(!mybstr)) = if (mybstr)