Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
去年关闭。
我尝试删除我的结构
并得到通知,此类型不完整。
警告:
C4150:删除指向不完整类型“ It”的指针;没有析构函数被调用
我必须在头文件中使用前向声明。
好的,我认为,使用迭代器在同一文件中删除的创建函数是正确的方法
并从任何地方调用它;
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
去年关闭。
我尝试删除我的结构
delete it;
并得到通知,此类型不完整。
警告:
C4150:删除指向不完整类型“ It”的指针;没有析构函数被调用
我必须在头文件中使用前向声明。
好的,我认为,使用迭代器在同一文件中删除的创建函数是正确的方法
void deleteIterator(It* it)
{
delete it;
}
并从任何地方调用它;
deleteIterator(it)
最佳答案
调用delete
要求完整声明所寻址的type1。将该代码移到翻译单元,该翻译单元将看到it
类型的完整声明。
1)考虑一下typeof(it)
声明是否为virtual
析构函数的区别。
关于c++ - 删除指向不完整类型的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47959504/
10-12 20:41