使用命名空间std和Template Classes

using namespace std and Template Classes

本文关键字:Template Classes std 命名空间      更新时间:2023-10-16

我现在明白了为什么包含是一种糟糕的做法

using namespace std;

在项目的头文件中。我听说在private.cpp函数定义文件中包含这个指令并不是什么大问题,因为它们通常不会直接包含在main()中。模板类通常必须包含.cpp定义文件才能正确编译和运行(除非您将定义直接包含在头文件中),这里有例外吗?

那么,一般规则是:

1) 不要在头文件中使用命名空间std。2)在private.cpp定义文件中使用它是可以的,除非这些定义是针对模板化类的。

我使用的规则是"不要在任何文件中使用"using namespace"或命名空间别名,以作为#include的目标。"

同样作为一般规则,"使用命名空间"或命名空间别名应出现在文件中的所有#includes之后。