Rumah >pembangunan bahagian belakang >C++ >Bila dan Mengapa Menggunakan Operator Resolusi Skop (::) Tanpa Skop dalam C ?

Bila dan Mengapa Menggunakan Operator Resolusi Skop (::) Tanpa Skop dalam C ?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 05:35:12724semak imbas

When and Why Use the Scope Resolution Operator (::) Without a Scope in C  ?

Penggunaan Pengendali Resolusi Skop Tanpa Skop

Dalam C , pengendali resolusi skop (::) membenarkan akses kepada ahli global atau ahli sesebuah ruang nama walaupun tiada skop hadir. Apabila digunakan tanpa skop, seperti dalam contoh ::foo(), ia menandakan skop global.

Tujuan

Pengendali resolusi skop yang digunakan tanpa skop mempunyai tujuan berikut:

  • Akses Ahli Global: Ia menyediakan akses kepada global fungsi, pembolehubah dan kelas tanpa menyatakan ruang nama atau nama kelasnya. Ini berguna apabila berbilang fungsi atau pembolehubah dengan nama yang sama wujud dalam ruang nama atau kelas yang berbeza dan anda perlu mengakses yang global.
  • Penyelesaian Konflik Nama: Jika terdapat fungsi atau pembolehubah konflik nama dalam skop semasa, menggunakan :: akan memastikan ahli global diakses bukannya ahli tempatan.

Contoh

Pertimbangkan contoh berikut:

void bar(); // global function

class foo {
    void some_func() { ::bar(); } // calls global bar(), not class version
    void bar(); // class member
};

Dalam contoh ini, jika kita ingin memanggil fungsi bar() global dari dalam fungsi ahli kelas some_func(), kita perlu menggunakan ::bar() untuk menyatakan dengan jelas skop global. Jika tidak, ia akan cuba memanggil bar ahli kelas().

Atas ialah kandungan terperinci Bila dan Mengapa Menggunakan Operator Resolusi Skop (::) Tanpa Skop dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn