#include <sstream>
using namespace std;
int main()
{
cout << "hi"; // error: undeclared cout
}
根据我所了解的,sstream类是从iostream类派生而来,但为什么它不会自动包含进来呢?
#include <sstream>
using namespace std;
int main()
{
cout << "hi"; // error: undeclared cout
}
根据我所了解的,sstream类是从iostream类派生而来,但为什么它不会自动包含进来呢?
iostream
基于类不同于iostream
标头。标准标头不必互相包含,或者可以以任何顺序包含彼此。如果您希望使用<iostream>
的内容,则必须#include <iostream>
。
std::ostream
等的类。 - Puppystd::sstream
派生自 std::istream
和 std::ostream
。这意味着您不需要包含 <istream>
或 <ostream>
。然而,std::cout
在这两个头文件中都没有定义。这就是为什么您需要另一个头文件 <iostream>
的原因。