2016-01-26 62 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)。使用完善的約定,您可以傳達一些聲明僅用於實現,而不是界面的一部分。

相關問題