【发布时间】:2011-02-08 16:43:53
【问题描述】:
我什至可能没有正确提出问题,但这是我的情况。我有一个命名空间,我想将所有全局函数放入其中。我想在相应的 .cpp 文件中定义它们。其中许多函数访问非全局类的实例,它们本身可能是也可能不是命名空间的成员。我可以前向声明类,但是当我尝试调用类方法时,我当然仍然会遇到链接器错误。一个(看起来很糟糕)的解决方案是在定义相应的类之后定义这些全局变量中的每一个,但这会将不同的函数放在不同的文件中,我想不惜一切代价避免这种情况,这样做似乎大错特错。
我还能做什么?我想我在这里遇到了一个概念问题,什么样的设计策略可能有助于解决这个问题?我必须使它们成为相应类的静态成员吗?我不喜欢这个 b/c 我的类有长名称,但我的命名空间名称很短......所以只使用 typedef?但从概念上讲,这些是全局函数,所以我想保持这种方式......感谢您的考虑。
【问题讨论】:
-
简单地将类的头文件
#include-ing 到你的“全局”源文件有什么问题?
标签: c++ class namespaces global