2011-10-27 14 views
8

これがなぜナットを駆動しているのか分かりませんが、それはそうです。私は定義された関数を持っていて、mainで宣言されています。C++の静的関数上のextern

static void myFunc(int x); 

static void myFunc(int x) 
{ 
    //do stuff 
} 

main() 

別のクラスでmyFunc(int x)を使用したいと思います。だから私はそのクラスのヘッダー内で extern static void myFunc(int x)をして、クラス定義で必要なところで呼び出すだけだと思いますが、うまくいきません。

私は間違っていますか?

おかげ

答えて

15

あなたは、彼らが相互に排他的で、一緒にexternとスタティック使用することはできません。

static


extern外部リンケージを意味内部リンケージを意味あなたは外部リンケージが必要な場合にのみexternを使用する必要が

グッド読む:
what is external linkage and internal linkage in c++?

+0

[OK]を、それは私が考えたものだが、私は定義から静的を削除すると、それはまだビルドしないであろう。 –

+0

宣言を 'static void myFunc(int);としておくと、定義中の' static'の存在に関わらず関数*は 'static'になります。 –

+0

ありがとう、私はそれを持って、私は静的を削除し、また私はヘッダーで間違って宣言していた。 –

関連する問題