我尝试删除我的结构
delete it;
并获取通知,此类型不完整。
警告: C4150:删除指向不完整类型的指针'它&#39 ;;没有析构函数叫
我必须在头文件中使用前向声明。
好吧,我认为,使用迭代器在同一个文件中创建删除函数是正确的方法
void deleteIterator(It* it)
{
delete it;
}
只需从任何地方拨打电话;
deleteIterator(it)
答案 0 :(得分:4)
调用delete
需要完整声明所述类型 1 。将该代码移出到翻译单元,该翻译单元可以看到it
类型的完整声明。
1) 考虑一下typeof(it)
声明virtual
析构函数所带来的区别。