我是一名C++新手,正在尝试在开展需要使用该语言的项目时学习它。我正在使用一个非常流行且稳定的开源库来完成大量繁重的工作。通过阅读库的源代码、教程和代码示例,我注意到他们在声明类型时总是使用完全限定名称,这经常导致很长而冗长的行,并包含许多 :: 。这被认为是C++最佳实践吗?是否有其他处理方式?
首先是typedef:
typedef std::vector<MyTypeWithLongName>::const_iterator MyTypeIt;
//use MyTypeIt from now on
using std::string;
//use string instead of std::string from now on
Third "using namespace"
using namespace std;
//Use all things from std-namespace without std:: in front (string, vector, sort etc.)
最佳实践:不要经常使用'using'和'using namespace'。当你必须使用它时(有时可以使代码更清晰),永远不要将其放在头文件中,而是放在.cpp文件中。 如果名称变得非常长或者我必须在同一个文件中多次使用类型,则我倾向于使用上述其中之一。
MyTypeIt
比const_iterator
更好。 - Lightness Races in Orbit如果您正在编写自己的库,肯定会广泛使用命名空间。在核心应用程序中,应使用更少的命名空间。关于像 std::string
这样做而不是以 using namespace std;
开始,我认为第一个版本更好,因为它更具描述性,且出错的可能性更小。