2016-01-26 21 views
1

我有一个静态函数在.cpp函数中声明,我不能在头中声明,因为它不应该是可见。 我想在同一个项目中的另一个.cpp中重新使用它。有没有办法使用在另一个.cpp在同一个项目中的.cpp中声明的静态void

可以做到这一点吗?

+0

不可以,通过使它成为'静态',它仅在[*翻译单元*](https://en.wikipedia.org/wiki/Translation_unit_%28programming%29)中可见(大致包含所有头文件的源文件)该功能是在 –

+4

中定义的你是自相矛盾的 - 因此这就是答案 –

+0

对谁而言不应该看到? –

回答

1

这里有两个问题:

  1. 这可能吗?
  2. 这是个好主意吗?

关于第一个问题,请查看extern keyword。如果您不在功能上使用static,则可以在不同的源文件中使用extern关键字“重新声明”,然后使用它。

关于第二个问题,可能有更好的选择,例如“详细”或“实施”名称空间(请参阅some thoughts on best practices for namespaces)。使用完善的约定,您可以传达一些声明仅用于实现,而不是界面的一部分。

相关问题