c++命名空间和using有什么区别

标签 c++

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

using boost::property_tree::ptree;

另一个使用这个:

namespace ptree = boost::property_tree::ptree;

有什么区别?

最佳答案

using boost::property_tree::ptree;

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

namespace ptree = boost::property_tree::ptree;

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

关于c++命名空间和using有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43516855/

相关文章:

c++ - 有效地向字符串 append 或插入可变数量的空格

java - Java 是否像 C++ 那样具有未定义的行为?

c++ - WM_ENDSESSION 消息有问题

c++ - 针对这种情况促进代码重用

Android 应用程序因 protobuf 而崩溃

c++ - Boost C++ date_time microsec_clock 和 second_clock

c++ - GCC 和 ld 找不到导出的符号......但它们在那里

c++ - 如何将管道句柄转换为 Google protobuf 的 file_descriptor(int)

c++ - 类构造函数中的类型转换不正确

c++ - 为什么这段代码可以运行?双 a[3]; a[1,1]=1;