前方宣言
前方参照 (英: forward reference) という用語は時々前方宣言の類義語として使われている。 しかしながらこの用語はその定義よりもむしろ、宣言する前に実体を実際に「利用」することを言及するのに使われている。この定義は上記のコードにおけるfirstのsecondへの参照が前方参照ということである。 したがって私達は、Pascalでは前方宣言が必須であるので、前方「参照」が禁止されていると言うであろう。
C++での(正しい)前方参照の例:
例えば、myValueの宣言前にmyValueへの二つの参照があるとする。C++では一般的に前方参照を禁止しているが、上記コードはクラスメンバの例外として許されている。コンパイラは、メンバ変数myValueの型を知らないとメンバ関数getValue()をコンパイルできないので、myValueの宣言を処理するまでgetValue()の定義を覚えておく。
前方参照を可能にすると、コンパイラの複雑さやメモリの必要量が激しく増し、一般的にはコンパイラのワンパスでの実行を難しくする。
プログラミングにおいて、前方宣言(ぜんぽうせんげん、英: forward declaration)とはプログラマが完全な定義を与えていないプログラム要素を表すシンボルの事前宣言のことである。変数、関数、型などに対するシンボルが含まれる。