目的-cでは、.m
ファイルのint
またはbool
などをの外にあると宣言できます。そうすれば、クラス内のどこでもそのような変数を使用できます。インターフェイスまたは実装内で変数を宣言していますか?
同じ変数をインターフェイスブロック内の.h
ファイルで宣言しても同じ結果が得られます。
まあ、私の質問です:違いは何ですか?ある?それとも組織化の問題なのでしょうか?
目的-cでは、.m
ファイルのint
またはbool
などをの外にあると宣言できます。そうすれば、クラス内のどこでもそのような変数を使用できます。インターフェイスまたは実装内で変数を宣言していますか?
同じ変数をインターフェイスブロック内の.h
ファイルで宣言しても同じ結果が得られます。
まあ、私の質問です:違いは何ですか?ある?それとも組織化の問題なのでしょうか?
最初に、.mファイルのあいまいな変数になり、インターフェイスのすべてのインスタンス間で共有されます。 2番目のケースでは、複数のインスタンスのために分離されます。一般的な方法は、インターフェイス内でインターフェイス変数を宣言することです。
2番目のケースでは、外部リンクを持つグローバル変数です。つまり、extern
キーワードを使用して、他の翻訳単位/ソースファイルにアクセスできます。しかし、最初のケースでは、インタフェースの一部であるため、アクセス指定子に応じて、このインタフェースから派生したメンバー関数やその他のインタフェースでのみ使用できます。