Pembolehubah Statik dalam Fungsi Ahli: Memahami Gelagat Mereka
Dalam C , pembolehubah statik dalam fungsi ahli berkelakuan berbeza daripada pembolehubah contoh. Mari kita terokai cara ia berfungsi menggunakan contoh:
Pertimbangkan kelas berikut:
class A { void foo() { static int i; i++; } };
Dalam kelas ini, i diisytiharkan sebagai pembolehubah statik dalam fungsi ahli foo. Pembolehubah statik mempunyai jangka hayat yang berterusan sepanjang keseluruhan program.
Sekarang, mari kita pertimbangkan apa yang berlaku apabila berbilang tika kelas A dicipta:
A o1, o2, o3;
Adakah pembolehubah statik yang saya kongsikan di kalangan semua tika A, atau adakah setiap tika mempunyai salinannya sendiri?
Dalam C , pembolehubah statik dalam fungsi ahli dikongsi antara semua contoh kelas. Ini bermakna memanggil foo() pada satu tika A menambah i yang sama untuk semua tika.
Untuk menggambarkan tingkah laku ini:
o1.foo(); // i = 1 o2.foo(); // i = 2 o3.foo(); // i = 3
Dalam contoh ini, setiap tika A memanggil foo(), menambah pembolehubah statik kongsi i.
Oleh itu, tidak seperti pembolehubah contoh, yang unik untuk setiap contoh, pembolehubah statik dalam fungsi ahli ialah entiti tunggal yang dikongsi oleh semua kejadian kelas. Mereka mengekalkan nilai mereka sepanjang hayat program.
Atas ialah kandungan terperinci Adakah pembolehubah statik dalam fungsi ahli dikongsi merentas semua keadaan kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!