ある複数のオブジェクトや情報などが互いを参照しあっており、ループを形成している状態のことです。
プログラミングの分野では、ポインタやリファレンスを使ってオブジェクトを参照できますが、オブジェクトA がオブジェクトB を参照し、オブジェクトB がオブジェクトA を参照するような状態になると、循環参照していることになります。
循環参照は、参照カウントを用いたリソース管理の妨げになってしまい、メモリリークの原因になることがあります。参照カウント方式は、オブジェクトがあらたに参照されると +1(インクリメント)、参照されなくなると -1(デクリメント)されるカウンタを持ち、カウンタが 0 になったらオブジェクトを解放する方式ですが、循環参照があるとカウントが 0 にならないため解放されません。この問題を解決する手段の1つとして、弱参照の仕組みを用いる方法があります。
また、スプレッドシートにおいても、あるセルに入力されている数式がほかのセルを参照しており、参照先のセルが元のセルを参照するような状態になっていると、循環参照していることになります。
Programming Place Plus のトップページへ
| はてなブックマーク に保存 | Facebook でシェア | X で ポスト/フォロー |
| LINE で送る | noteで書く |
|
| 管理者情報 | プライバシーポリシー |