почему заголовочный файл iostream не включается? - PullRequest
3 голосов
/ 16 мая 2011
#include <sstream>
using namespace std;

int main()
{
    cout << "hi"; // error: undeclared cout
}

Из того, что я прочитал, класс sstream является производным от класса iostream, но почему он не включается автоматически?

Ответы [ 2 ]

11 голосов
/ 16 мая 2011

Классы на основе iostream не совпадают с заголовком iostream. Стандартные заголовки не должны включать друг друга или могут включать друг друга в любом порядке. Если вы хотите использовать содержимое <iostream>, вы должны #include <iostream>.

1 голос
/ 17 мая 2011

std::sstream является производным от std::istream и std::ostream. Это означает, что вам не нужно включать <istream> или <ostream>. Однако std::cout не определено ни в одном из этих двух заголовков. Вот почему вам нужен еще один заголовок, <iostream>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...