Dalam dunia C , pengendali resolusi skop, dilambangkan dengan "::," mempunyai perbezaan yang ketara daripada rakan sejawatannya, "." pengendali. Walaupun bahasa lain, seperti Java, menggunakan operator tunggal untuk pelbagai tujuan, C memilih operator khusus yang disesuaikan khusus untuk menyelesaikan kekaburan antara pembolehubah ahli dan nama kelas.
Keanehan keperluan C untuk pembolehubah yang berasingan. operator berpunca daripada keupayaan bahasa untuk mentakrifkan senario di mana pembolehubah ahli dan jenis kelas terbitan berkongsi nama yang sama. Pertimbangkan contoh kod berikut:
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, pembolehubah ahli foo dalam bar kelas terbitan berkongsi nama yang sama dengan kelas induk foo. Untuk membezakan antara keduanya, C menggunakan pengendali resolusi skop, membenarkan rujukan tunggal kepada kelas terbitan menggunakan "::foo::blah." Mekanisme penyelesaian kekaburan ini menjadi penting dalam keadaan sedemikian.
Atas ialah kandungan terperinci Mengapa C menggunakan Pengendali Resolusi Skop ::?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!