ヘッダーファイルをインポートできるかどうか疑問に思っていましたが、そのヘッダーファイルに含まれているヘッダーは含まれていません。
クラスBをインポートするクラスAがあるとします。クラスBでは、クラスCをインポートします。クラスCをクラスAから非表示にする方法はありますか?
ヘッダーファイルをインポートできるかどうか疑問に思っていましたが、そのヘッダーファイルに含まれているヘッダーは含まれていません。
クラスBをインポートするクラスAがあるとします。クラスBでは、クラスCをインポートします。クラスCをクラスAから非表示にする方法はありますか?
いいえ、それはできません。ファイルをインポートすると、そのすべてのインポートも同様に行われます。
ただし、のみを使用する場合は、のヘッダーをインポートする代わりに、独自のヘッダーで前方宣言するClassA
ことができます。ClassA
@class ClassA;
これで、型の変数を作成したり、戻り型やパラメータ型としてClassA*
使用ClassA*
したりできます。同時に、ClassA
のヘッダーの依存関係は読み込まれません。
一般に、ヘッダー内にインポートするヘッダーの数を減らすことをお勧めします。たとえば、(インターフェイスではなく)実装に関連するインポートを.mファイルに移動し、クラス拡張子を使用します。