我从codeproject下载了一个旧项目(2008),现在我试图对其进行编译,结果出现了以下错误:
'&&': illegal, right operand has type 'void'
在这里:
while( hItem_i )
{
PINodeData pNodeData = GetItemData( hItem_i );
pNodeData && pNodeData->DeleteNodeData() && delete pNodeData; //HERE!!!
....
}
怎么了?
最佳答案
错误告诉您问题所在。 delete
不返回任何内容(而且很有可能DeleteNodeData
也不会返回任何内容),因此它不能用作测试的一部分(因为即使您不使用测试,测试也必须有结果)。
更改为:
if (pNodeData) {
pNodeData->DeleteNodeData();
delete pNodeData;
}
这是这里的实际逻辑(如果有指针,请清理它)。