不完整的类型,这是什么意思
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;
}
第一次执行后,它正确地读取了文件中的第一个整数,但我在调试时注意到不完整的类型。此外,我还包括<<"好";看看它是否会运行到那个点以及当我的程序执行时,它所做的只是反复显示"好"。
以下是包括:
#include <iostream>
#include <string>
#include <fstream>
我将其定义为常规的 ifstream 类型:
int fileInt; //int read from input file
ifstream intInputFile;
遗漏的包含或多个包含或导致intInputFile
类型的定义在该代码行中不可见的内容。
"
不完整类型"意味着提供消息的工具(通常是编译器,但在您的情况下是调试器)并不确切知道类型是什么样子的。它知道有一个类型,但不知道它有哪些成员或它们在内存中的布局方式。
如果调试器告诉你这一点,它是非常无害的。它不会影响程序的执行,但可能会限制调试选项(如果需要查看未知类型的成员)。
如果编译器告诉你这一点,你就有一个严重的问题,因为编译器无法检查代码是否真正有效。此错误通常是由定义类型的标头缺少#include
行引起的。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思