c ++命名空间和使用之间有什么区别

1 c++

我正在看两个源代码.一个使用这个:

using boost::property_tree::ptree;
Run Code Online (Sandbox Code Playgroud)

另一个使用这个:

namespace ptree = boost::property_tree::ptree;
Run Code Online (Sandbox Code Playgroud)

有什么不同?

Som*_*ude 7

using boost::property_tree::ptree;
Run Code Online (Sandbox Code Playgroud)

您将boost::property_tree::ptree类拉入当前命名空间.从那时起你可以使用ptree而不是boost::property_tree::ptree.

namespace ptree = boost::property_tree::ptree;
Run Code Online (Sandbox Code Playgroud)

你应该有一个错误,因为boost::property_tree::ptree是一个而不是一个名称空间.否则(如果它是命名空间)它将为命名空间创建别名(如ptBoost属性树教程中使用的方式).