Здравствуйте promko, Вы писали:
P>или например какая разница между <ios> и <ios.h> ?
При использовании заголовочных файлов стандартной библиотеки STL c расширением h гарантирует размещение имен в глобальном пространстве имен, а без расширения — в простанстве std.
Здравствуйте promko, Вы писали:
P>или например какая разница между <ios> и <ios.h> ?
<iostream.h> — это один из заголовочных файлов так называемой "старой потоковой библиотеки", которой уже тыщу лет, она не парамеризована и еще много чего.
<iostream> — это один из заголовочных файлов стандартной (в смысле, которая описана в Стандарте) потоковой библиотеки, которая параметризована (в том смысле, что там не просто классы потоков (работающие только с char), как в старой, а шаблоны, которые могут быть заточены под любой символьный тип, а не только под char — например, еще и под wchar_t).
Так что нужно смотреть очень внимательно, где что включается, и не смешивать использование этих библиотек, потому что до сих пор они часто поставляются вместе — и новая, и старая.
Кстати, хороший способ обезопасить себя от старой библиотеки — не использовать директив типа using namespace std; и подобных, позволяющих обращаться в новым классам без указания пространства имен, а самому в программе обращаться к ним исключительно так: std::cout, std::endl и т.д, т.е. с явной квалификацией (кстати, это — лишняя иллюстрация полезности введения пространств имен в С++ — возможность одновременно использовать 2 библиотеки, определяющие одинаковые имена).