Mengapa C Menggunakan Operator Resolusi Skop (::)?
Tidak seperti Java, C menggunakan operator resolusi skop (::) sebagai simbol tersendiri. Operator ini mempunyai tujuan khusus dalam menyahkekaburan sintaks kod.
Pada asalnya, rasional di sebalik :: berpunca daripada keperluan untuk menampung struktur kod seperti:
struct foo { int blah; }; struct thingy { int data; }; struct bar : public foo { thingy foo; }; int main() { bar test; test.foo.data = 5; test.foo::blah = 10; return 0; }
Dalam contoh ini, '. ' pengendali akan menyebabkan kekaburan, kerana kedua-dua "foo" mewakili entiti yang berbeza (pembolehubah ahli dan jenis kelas terbitan). Untuk menangani perkara ini, penggunaan :: untuk akses kelas dan '.' untuk akses ahli telah diperkenalkan.
Dengan menggunakan operator yang berbeza, C memastikan bahawa pengkompil boleh menentukan dengan jelas konteks (objek atau nama taip/ruang nama) di mana pengecam digunakan. Pembezaan ini membenarkan sintaks seperti berikut:
foo::bar; // Class access thing.baz; // Member access
Atas ialah kandungan terperinci Mengapakah Operator Resolusi Skop (::) Penting dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!