在 C++ 中,您可以在 if 语句中初始化变量,如下所示:
if (CThing* pThing = GetThing())
{
}
为什么人们会认为这种不好或好的风格?有什么好处和坏处?
我个人喜欢这种风格,因为它限制了 pThing 变量的范围,所以当它为 NULL 时永远不会被意外使用。但是,我不喜欢你不能这样做:
if (CThing* pThing = GetThing() && pThing->IsReallySomeThing())
{
}
如果有办法使上述工作,请张贴。但如果那是不可能的,我仍然想知道为什么。