Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pembolehubah Statik Berkelakuan dalam Fungsi Ahli dalam C?
Pembolehubah Statik dalam Fungsi Ahli dalam C
Dalam C, fungsi ahli boleh mengandungi pembolehubah statik. Pembolehubah ahli statik dalam kelas dikongsi merentas semua kejadian kelas, tanpa mengira objek yang mana fungsi dipanggil.
Mari kita pertimbangkan kelas berikut:
class A { public: void foo() { static int i; i++; } };
Bertentangan dengan andaian bahawa setiap contoh A akan mempunyai salinan i sendiri, adalah penting untuk ambil perhatian bahawa hanya akan ada satu contoh i untuk keseluruhan program. Ini kerana int statik i diisytiharkan di dalam definisi kelas dan di luar mana-mana fungsi tertentu, menjadikannya ahli kelas itu sendiri dan bukannya pembolehubah setempat kepada fungsi foo.
Oleh itu, sebarang contoh objek A akan menjejaskan i kongsi yang sama, dan hayatnya akan berterusan sepanjang pelaksanaan program. Contohnya:
A o1, o2, o3; o1.foo(); // i = 1 o2.foo(); // i = 2 o3.foo(); // i = 3 o1.foo(); // i = 4
Dalam senario ini, semua kejadian A mengakses dan mengubah suai pembolehubah statik yang sama i. Memanggil foo pada mana-mana kejadian meningkatkan i kongsi untuk keseluruhan kelas.
Atas ialah kandungan terperinci Bagaimanakah Pembolehubah Statik Berkelakuan dalam Fungsi Ahli dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!