我从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;
}

这是这里的实际逻辑(如果有指针,请清理它)。

08-16 00:12