2016-11-20 3 views
1

私は完全にクラスのメンバーである静的関数の使用を理解しています。しかし、どのクラスにも関連していないか、またはグローバルに定義されている静的関数を使用する可能性があります。例:クラス内で関連/宣言されていない静的メンバー関数の使用方法を教えてください。

#include <iostream> 
using namespace std; 
static int func() 
{ 
    cout<<"This is a function"; 
} 

int main() 
{ 
/*Random code here*/ 
return 0; 
} 
+1

名前空間スコープで 'static'は[internal linkage](http://stackoverflow.com/q/1358400/636019)を示します。 – ildjarn

+1

[静的](https://stackoverflow.com/documentation/c%2b%2b/4891/keywords/18689/static#t=201611200648130483261) – Danh

+0

少し詳細を教えてください。私は静的関数の初心者です。 –

答えて

4

これは、その翻訳単位内でのみ表示される関数を作成します。翻訳単位は、基本的にそのソースファイルです(前処理後、ヘッダーに含まれていたものと、ファイル自体に直接含まれるもの)。

これは、関数を匿名名前空間に入れることとほぼ同じですが、匿名名前空間は一般的には好ましいと考えられます。

+0

翻訳単位とは何ですか?もう少し詳しく教えていただけますか? –

関連する問題