Skop Global dengan Pengendali Resolusi Skop
Dalam C , pengendali resolusi skop (::) biasanya digunakan untuk mengakses ahli sesuatu skop. Walau bagaimanapun, ia juga boleh digunakan tanpa menyatakan skop, memenuhi tujuan tertentu dalam bahasa.
Apabila pengendali resolusi skop digunakan secara bersendirian, ia menandakan skop global. Penggunaan ini menjadi relevan apabila menangani konflik penamaan dan mengakses entiti global dari dalam skop yang berbeza.
Sebagai contoh, pertimbangkan coretan kod berikut:
::foo();
Dalam contoh ini, operator resolusi skop tanpa awalan skop menunjukkan skop global. Ini bermakna program berhasrat untuk memanggil fungsi foo() daripada ruang nama global, bukan daripada mana-mana kelas atau skop tertentu.
Penggunaan ini amat membantu apabila anda menghadapi konflik antara fungsi atau pembolehubah dengan nama yang sama dalam pelbagai skop. Contohnya:
void bar(); // global function class foo { void some_func() { ::bar(); } // call the global bar() void bar(); // class member function };
Dalam senario ini, fungsi bar() ditakrifkan secara global dan sebagai fungsi ahli kelas foo. Untuk memanggil fungsi bar() global secara eksplisit dari dalam kaedah some_func() kelas foo, adalah perlu untuk menggunakan operator resolusi skop sebagai ::bar().
Dengan menggunakan operator resolusi skop tanpa skop, anda memastikan bahawa atur cara merujuk simbol global, walaupun simbol yang dinamakan serupa wujud dalam skop yang lebih setempat.
Atas ialah kandungan terperinci Apakah Maksud Operator Resolusi Skop (::) Apabila Digunakan Sendirian dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!