Rumah >pembangunan bahagian belakang >C++ >Apakah Penentu Fungsi Ahli &, &&, dan const& Digunakan untuk dalam C ?

Apakah Penentu Fungsi Ahli &, &&, dan const& Digunakan untuk dalam C ?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 22:47:30586semak imbas

What Member Function Specifiers Are &, &&, and const& Used for in C  ?

Penentukan Fungsi Ahli dalam C : const&, &, dan &&

Pengenalan:

Dalam C , fungsi ahli boleh diisytiharkan dengan pelbagai penentu. Selain daripada const biasa, dua penentu tambahan, & dan &&, telah diperkenalkan dalam standard C 11. Artikel ini bertujuan untuk menjelaskan maksud dan penggunaan penentu ini.

Memahami Penentu:

const&:

  • Penentukan ini menunjukkan bahawa fungsi ahli boleh digunakan pada kedua-dua objek const dan bukan const.
  • Walau bagaimanapun, ia memerlukan objek untuk menjadi lvalue (iaitu, bukan sementara atau rvalue).

Contoh:

<code class="cpp">class A {
public:
    const A& operator*() const&; // Can be invoked on both const and non-const lvalues
};</code>

&:

  • Penentukan ini menunjukkan bahawa fungsi ahli boleh digunakan hanya pada objek bukan const.
  • Ia juga memerlukan objek untuk menjadi lvalue.

Contoh:

<code class="cpp">class A {
public:
    A& operator*() &; // Can be invoked only on non-const lvalues
};</code>

&&:

  • Penentukan ini menunjukkan bahawa fungsi ahli boleh digunakan hanya pada objek rnilai (iaitu, sementara atau ungkapan).
  • Dalam erti kata lain, ia melangkau skop kelas dan secara langsung memanggil fungsi ahli pada objek sementara.

Contoh:

<code class="cpp">class A {
public:
    A&& operator*() &&; // Can be invoked only on rvalues
};</code>

Penggunaan dalam Amalan:

Penentukan ini membenarkan definisi fungsi ahli yang lebih spesifik dan cekap.

  • const&: Berguna untuk fungsi yang tidak mengubah suai objek atau menjamin bahawa hasilnya tidak akan digunakan untuk mengubah suai objek.
  • &: Memastikan objek bukan const dan menghalang pengkompil daripada mencipta salinan sementara secara automatik.
  • &&: Mengoptimumkan prestasi dengan mengelakkan penciptaan objek dan pemusnahan untuk objek sementara.

Kesimpulan:

Penentukan const&, &, and && memberikan kawalan dan fleksibiliti yang lebih besar apabila mentakrifkan fungsi ahli dalam C . Memahami nuansa mereka membolehkan pengaturcara menulis kod yang lebih cekap dan mantap.

Atas ialah kandungan terperinci Apakah Penentu Fungsi Ahli &, &&, dan const& Digunakan untuk 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