【发布时间】:2012-07-19 12:33:48
【问题描述】:
在我目前的工作中,我看到在 cpp 文件中的未命名命名空间中声明的变量仅由该类使用,就好像它们是成员变量一样。
我认为这是一种在 .h 中仅保留接口信息并在 .cpp 中实现的有趣方式,并且比通常的 pimpl 惯用语工作量少。
我看到人们一直在使用 pimpl 但从来没有这种方法,它有什么问题吗?
【问题讨论】:
-
“皮条客”成语是“金钱==权力”吗?
-
在旧 C 语言中,您必须标记全局变量和函数
static以使它们保持在文件本地而不被导出。在 C++ 中,您可以改为使用匿名命名空间来实现相同的效果。 -
你能举例说明你的意思吗?您不能在命名空间范围内声明成员,只能在类中声明它们。如果它们在命名空间范围内声明(未命名或未命名),则它们不是成员。
标签: c++ pimpl-idiom