我什至可能没有正确提出问题,但这是我的情况。我有一个 namespace ,我想将所有全局函数放入其中。我想在相应的 .cpp 文件中定义它们。其中许多函数访问非全局类的实例,这些类本身可能是也可能不是命名空间的成员。我可以前向声明类,但是当我尝试调用类方法时,我当然仍然会遇到链接器错误。一个(看起来很糟糕的)解决方案是在定义了相应的类之后 定义这些全局变量中的每一个,但这会将不同的函数放在不同的文件中,我想不惜一切代价避免这种情况,这样做似乎大错特错。
我还能做什么?我想我在这里遇到了一个概念性问题,什么样的设计策略可能有助于解决这个问题?我必须让它们成为相应类的静态成员吗?我不喜欢这个 b/c 我的类有长名称,但我的命名空间名称很短......所以只使用 typedef?但从概念上讲,这些是全局函数,所以我想保持这种状态……感谢您的考虑。
最佳答案
我会在它们自己的头文件中自行定义“全局函数”。如果您需要添加前向声明,请在此处添加。
在 .cpp 文件中,只需根据需要包含其他“非全局”类和函数的 header 。这将使公共(public) API(头文件)保持“干净”,同时让您在这些功能的实际代码中正常开发。
关于c++ - 如何将访问非全局类的全局函数放在一个地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4935753/