不允许使用不完整类型:stringstream

pig*_*d10 96 c++ types stringstream

为什么这一行会出错Error: incomplete type is not allowed

stringstream ss;
Run Code Online (Sandbox Code Playgroud)

Pra*_*rav 180

#include <sstream> 并使用完全限定的名称,即 std::stringstream ss;


rak*_*ice 13

一个不完整的类型是你有一个类型的前向声明(例如incomplete type),所以编译器知道这个标识符是一个类型,但不是它的完整定义(class stringstream;).

当您包含使用该类型的标头但不包含定义类型的标头时,可能会发生这种情况.

对于标准库中的东西,例如class stringstream { ... };类,使用参考文档(例如Unix stringstream页面,MSDN等)来确定man使用它需要什么以及如果有的话找到它的命名空间.您可能需要搜索出现类名的页面(例如#include).