簡介:
在C 中,成員函數可以使用各種說明符進行聲明。除了熟悉的 const 之外,C 11 標準中還引入了兩個附加說明符 & 和 &&。本文旨在闡明這些說明符的含義和用法。
理解說明符:
const&:
範例:
<code class="cpp">class A { public: const A& operator*() const&; // Can be invoked on both const and non-const lvalues };</code>
&:
它也要求物件是左值。
<code class="cpp">class A { public: A& operator*() &; // Can be invoked only on non-const lvalues };</code>
範例:
此說明符指示只能在此說明符指示右值物件(即臨時物件或表達式)上呼叫成員函數。
<code class="cpp">class A { public: A&& operator*() &&; // Can be invoked only on rvalues };</code>
換句話說,它會跳過類別範圍並直接呼叫臨時物件上的成員函數。
範例:
const&:對於不修改對像或保證結果不會用於修改的函數有用
&:確保對像是非常量對象,並防止編譯器自動建立臨時副本。 &&:透過避免臨時物件的物件建立和銷毀來最佳化效能。 結論:const&、& 和 && 說明符在 C 中定義成員函數時提供了更好的控制和靈活性。了解它們的細微差別可以讓程式設計師編寫出更有效率、更健壯的程式碼。以上是C 中 &、&& 和 const& 的成員函數說明符有何用途?的詳細內容。更多資訊請關注PHP中文網其他相關文章!