Apabila mereka bentuk projek perisian yang kompleks dengan pelbagai ciri dan kelas, ia menjadi semakin mencabar untuk menghalang kebergantungan bulat antara fail pengepala. Kebergantungan bulat timbul apabila pengepala memerlukan kemasukan antara satu sama lain, mewujudkan gelung yang tidak boleh diselesaikan.
Untuk mengelakkan isu ini dengan berkesan, pertimbangkan garis panduan berikut:
Setiap fail pengepala hendaklah direka bentuk supaya boleh dimasukkan secara bebas. Ini bermakna ia tidak seharusnya bergantung pada disertakan selepas atau sebelum mana-mana pengepala lain tertentu.
Apabila kelas perlu merujuk kelas lain, pertimbangkan untuk menggunakan pengisytiharan hadapan bukannya secara langsung termasuk pengepala yang sepadan. Pengisytiharan hadapan hanya mengumumkan kewujudan kelas tanpa mentakrifkannya, menghalang kebergantungan bulat.
Pertimbangkan kod yang salah berikut dengan kebergantungan bulat:
foo.h ----- #include "bar.h" class foo { public: bar b; }; bar.h ----- #include "foo.h" class bar { public: foo f; };
Untuk menyelesaikan masalah ini, pengisytiharan hadapan boleh digunakan:
foo.h ----- #include "bar.h" class foo { public: bar *b; }; bar.h ----- #include "foo.h" class bar { public: foo *f; };
Kini, foo.h mengisytiharkan bar menggunakan pengisytiharan hadapan dan bar.h mengisytiharkan foo yang serupa. Ini menghalang kebergantungan bulat dan membenarkan kemasukan bebas setiap pengepala.
Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Ketergantungan Pekeliling dalam Fail Pengepala?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!