【发布时间】:2014-09-09 01:13:44
【问题描述】:
我已经写了一段时间的代码了。我一直在使用命名空间来分隔几部分代码,以使代码更具可读性。但是,我遇到了一个问题,我想在那个私有的地方做点什么。以下是我发现的作品:
//foobar.h
namespace foo_bar {
//Other items here...
}
//foobar.cpp
namespace foo_bar {
//Other items here...
void foo_barz() {..
//Faked private method!
}
}
它编译得很好。使用这种方法有什么负面影响吗?我认为一个类可能是一个更好的选择,但在当时,使用命名空间似乎是一个更简单的解决方案,因为它是一个项目。有没有更“传统”的方式来做到这一点?这可能会导致其他问题吗?这可能是什么问题?
编辑:我想我不清楚我做了什么。我所做的是:我没有在头文件中包含函数原型,所以当包含时,头文件使包含该文件的代码认为该函数不存在。
【问题讨论】:
-
符号在 TU 之外仍然可以访问,这就是 unnamed namespaces 的用途。
标签: c++ namespaces private