[英]Incomplete type, what does this mean?
我正在尝试调试我的程序,我正在从一个名为intInputFile的文件中读取值。 我正在查看我的局部变量,并看到它说intInputFile =不完整类型。 我试过看,但没有明确的答案,我不知道这意味着什么。 任何人都可以解释,因为我认为这搞砸了我的程序。
谢谢。
intInputFile >> fileInt;
cout << "check" <<endl;
while(!intInputFile.eof())
{
intNode* anotherInt;
anotherInt = new intNode;
if(intList==NULL)
{
intList = anotherInt;
lastInt = anotherInt;
lastInt->nextNode = NULL;
lastInt->nextNode = new intNode;
}
else
{
lastInt = lastInt->nextNode;
lastInt->nextNode = NULL;
lastInt->nextNode = new intNode;
}
lastInt->intValue = fileInt;
intInputFile >> fileInt;
cout << "good" <<endl;
}
首次执行后,它会正确读入文件中的第一个整数,但在调试时我注意到了不完整的类型。 另外,我还包括cout <<“good”; 看看它是否会运行到那一点,当我的程序执行时,它所做的一切都是重复显示“好”。
以下是包括:
#include <iostream>
#include <string>
#include <fstream>
我将其定义为常规ifstream类型:
int fileInt; //int read from input file
ifstream intInputFile;
错过包含或多个包含或导致intInputFile
类型定义在该代码行中不可见的内容。
“不完整类型”意味着提供消息的工具(通常是编译器,但在您的情况下是调试器)并不确切地知道类型是什么样的。 它知道有一种类型,但不知道它有哪些成员或它们如何在内存中布局。
如果调试器告诉你这个,它是非常无害的。 它不会影响程序的执行,但可能会限制您的调试选项(如果您需要查看未知类型的成员)。
如果编译器告诉你这个,那你就有一个严重的问题,因为编译器无法检查代码是否真的有效。 此错误通常是由定义类型的标头缺少#include
行引起的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.