C++中,您可以在if语句中初始化变量,例如:
if (CThing* pThing = GetThing())
{
}
为什么有人认为这样做是好的或者不好的风格?这样做有什么优点和缺点?个人认为这种风格不错,因为它限制了pThing变量的范围,所以当它为NULL时就不会被意外使用。但是,我不喜欢你不能这样做的情况:
if (CThing* pThing = GetThing() && pThing->IsReallySomeThing())
{
}
如果有办法使上述内容可行,请发布。但如果那不可能,我仍然想知道为什么。