Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan Antara Ampersand Tunggal dan Berganda dalam Pengisytiharan Fungsi Ahli C?
Tafsiran Mendalam Ampersand dalam Pengisytiharan Fungsi Ahli
Dalam C , fungsi ahli bukan statik boleh dihiasi dengan ref-qualifier . Pelayakkan ini menentukan kategori rujukan bagi parameter objek tersirat yang dihantar kepada fungsi.
Mari terokai dua pelayakkan semula biasa:
Tanpa menyatakan sebarang penentuan semula , fungsi boleh digunakan tanpa mengira kategori nilai objek.
Untuk menggambarkan perbezaan:
struct Foo { void bar() {} // Default: can be invoked with both lvalues and rvalues void bar1() & {} // Can only be invoked with lvalues void bar2() && {} // Can only be invoked with rvalues };
Dalam contoh di atas:
Berikut ialah demonstrasi langsung:
int main() { Foo f; f.bar(); f.bar1(); Foo().bar2(); // Error: bar2 requires an rvalue }
Memahami ref-qualifier ini membolehkan anda mengawal akses kepada fungsi ahli anda berdasarkan kategori rujukan objek yang sedang digunakan. pada.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Ampersand Tunggal dan Berganda dalam Pengisytiharan Fungsi Ahli C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!