不要在头文件中放置使用指令,使用指令的通常形式是:
因为std是环绕整个标准c++库的名字空间,所以这个特定的使用指令允许不用限定方式使用标准c++库中的名字。但是在头文件中是绝不会看到使用指令的(至少,不在一个范围之外)。原因是,[b]这样的使用指令去除了对这个特定名字空间的保护[/b],并且这个结果一直持续到当前的编译单元结束。如果将一个使用指令放在一个头文件中(在一个范围之外),这就意味着“名字空间保护”将在包含这个头文件的任何文件中消失,这些文件常常是其他文件的头文件。这将很容易最终在实际上在各处“关闭”名字空间,因此不能体现名字空间的好处。
using namespace std
因为std是环绕整个标准c++库的名字空间,所以这个特定的使用指令允许不用限定方式使用标准c++库中的名字。但是在头文件中是绝不会看到使用指令的(至少,不在一个范围之外)。原因是,[b]这样的使用指令去除了对这个特定名字空间的保护[/b],并且这个结果一直持续到当前的编译单元结束。如果将一个使用指令放在一个头文件中(在一个范围之外),这就意味着“名字空间保护”将在包含这个头文件的任何文件中消失,这些文件常常是其他文件的头文件。这将很容易最终在实际上在各处“关闭”名字空间,因此不能体现名字空间的好处。