メンバー関数宣言におけるアンパサンドの詳細な解釈
C では、非静的メンバー関数を ref 修飾子で装飾できます。これらの修飾子は、関数に渡される暗黙的なオブジェクト パラメーターの参照カテゴリを指定します。
2 つの一般的な参照修飾子を見てみましょう:
ref 修飾子を指定せずにの場合、関数はオブジェクトの値カテゴリに関係なく呼び出すことができます。
違い:
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 };
上の例:
ライブ デモンストレーションは次のとおりです:
int main() { Foo f; f.bar(); f.bar1(); Foo().bar2(); // Error: bar2 requires an rvalue }
これらの参照修飾子を理解すると、呼び出されるオブジェクトの参照カテゴリに基づいてメンバー関数へのアクセスを制御できるようになります。
以上がC メンバー関数宣言における単一アンパサンドと二重アンパサンドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。