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

时间:2017-04-20 10:24:39

标签: c++

我正在查看两个源代码。一个用这个:

using boost::property_tree::ptree;

另一个使用它:

namespace ptree = boost::property_tree::ptree;

有什么区别?

2 个答案:

答案 0 :(得分:7)

使用

using boost::property_tree::ptree;

boost::property_tree::ptree类拉入当前命名空间。从那时起,您可以使用ptree代替boost::property_tree::ptree

使用

namespace ptree = boost::property_tree::ptree;

您应该有一个错误,因为boost::property_tree::ptree而不是命名空间。否则(如果它是命名空间)它将为命名空间创建别名(例如Boost property tree tutorialspt的使用方式)。

答案 1 :(得分:-1)

namespace语句将命名空间带入范围。 ::语句定义了一个别名(要使用它,您必须使用var opener = window.opener; if(opener) { var oDom = opener.document; var elem = oDom.getElementById("your element"); if (elem) { var val = elem.value; } } 运算符访问它。)

编辑:请看程序员老兄的答案以获得正确的答案。