为什么 iostream 头文件没有被包含?

发布于 2024-11-07 09:29:14 字数 190 浏览 2 评论 0原文

#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
}

From what I have read, sstream class is derived from iostream class but why does it not get included automatically?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简单 2024-11-14 09:29:14

基于 iostream 的类与 iostream 标头不同。标准标头不必相互包含,也可以按任何顺序相互包含。如果您希望使用 的内容,则必须 #include

The iostream-based classes are not the same as the iostream header. Standard headers do not have to include each other, or may include each other in any order. If you wish to use the contents of <iostream>, you must #include <iostream>.

回忆那么伤 2024-11-14 09:29:14

std::sstream 派生自 std::istreamstd::ostream。这意味着您不需要包含 。但是,std::cout 并未在这两个标头中定义。这就是为什么您需要另一个标头

std::sstream is derived from both std::istream and std::ostream. That means you don't need to include <istream> or <ostream>. However, std::cout is defined in neither of those two headers. That's why you need yet another header, <iostream>.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文