C の const、非 const、および Rvalue オブジェクトに使用するメンバー関数指定子はどれですか?

Mary-Kate Olsen
リリース: 2024-10-23 15:57:02
オリジナル
735 人が閲覧しました

Which Member Function Specifier to Use for const, non-const, and Rvalue Objects in C  ?

メンバー関数指定子: const&、&、および &&& の役割を明らかにする

C の領域では、装飾されたメンバー関数に遭遇することがあります。 const&、&、&&& などの謎めいた指定子を使用します。これらのシンボルは無害に見えるかもしれませんが、これらの関数の動作とアクセシビリティを決定する上で重要な役割を果たします。

最初の指定子 const& を分析すると、これが const、非 const、および const を対象としたオーバーロードを指定していることがわかります。 lvalue オブジェクト。次の例を考えてみましょう。

<code class="cpp">const A a = A();
*a;</code>
ログイン後にコピー

このシナリオでは、 a が const lvalue オブジェクトであるため、const& オーバーロードが呼び出されます。

次に、& 指定子はオーバーロードを非 const オブジェクトに制限します。 。例:

<code class="cpp">A a;
*a;</code>
ログイン後にコピー

ここでは、a が非 const オブジェクトであるため、& オーバーロードが使用されます。

最後に、以下に示すように、&&& 指定子は右辺値オブジェクトのみに対応します。

<code class="cpp">*A();</code>
ログイン後にコピー

式が右辺値であるため、このオーバーロードが選択されます。

これらの指定子は戻り値の型ではなく、セミコロンの前の指定子にのみ適用されることに注意してください。関係するオブジェクトの型と値のカテゴリを慎重に検討することで、適切なオーバーロードを確実に呼び出すことができます。

以上がC の const、非 const、および Rvalue オブジェクトに使用するメンバー関数指定子はどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!