#include <sstream>
using namespace std;
int main()
{
cout << "hi"; // error: undeclared cout
}
根据我的阅读,sstream类派生自iostream类,但为什么不自动包含它?
答案 0 :(得分:11)
基于iostream
的类与iostream
标头不同。标准标题不必相互包含,也可以按任何顺序包含。如果您想使用<iostream>
的内容,则必须#include <iostream>
。
答案 1 :(得分:1)
std::sstream
源自std::istream
和std::ostream
。这意味着您不需要包含<istream>
或<ostream>
。但是,std::cout
在这两个标头中都没有定义。这就是为什么你需要另一个标题<iostream>
的原因。