ネストされたクラス前方宣言: 不可能なタスク
C では、内部クラスはコードを整理する便利な方法です。ただし、内部クラスのオブジェクトを、囲んでいるクラスの定義の外側で参照によって渡そうとすると、コンパイル エラーが発生する可能性があります。これは、コンパイラが、呼び出し関数で使用する前に、内部クラスが完全に定義または宣言されている必要があるためです。
次のコードを検討してください。
イテレータを渡したい場合Container クラスのスコープ外の関数内でオブジェクトを参照する場合は、直感的に Iterator の前方宣言を試みることができます。 class:
ただし、このアプローチは、不明な型 Iterator であるため、コンパイル エラーで失敗します。
前方宣言の制限
C では、前方宣言は、クラス自体を宣言するためにのみ使用でき、そのネストされたメンバーを宣言することはできません。この制限により、内部クラスの前方宣言が妨げられます。
解決策
この問題を解決するには、次の代替戦略を検討してください。
以上がC のネストされたクラスは、それを囲んでいるクラスの外で使用するために前方宣言できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。