ホームページ >バックエンド開発 >C++ >C 参照にデフォルトのパラメータ値を設定できますか?

C 参照にデフォルトのパラメータ値を設定できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 19:28:13781ブラウズ

Can C   References Have Default Parameter Values?

C での参照のデフォルトのパラメーター値

パラメーターを参照によって渡す場合、通常はデフォルト値を指定することはできません。ただし、定数参照については、このルールには例外があります。

次の関数宣言を考えてみましょう:

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);

C では一時的な値 (次のような) が許可されないため、このコードはエラーになります。デフォルト値の 0) は非定数参照にバインドされます。

定数の解決策参照

定数参照の場合、デフォルト値を指定できます。これは、コンパイラが参照が変更されないことを保証できるためです。

virtual const ULONG Read(const ULONG &State = 0, bool sequence = true);

非定数参照の回避策

一方、デフォルト値は非定数参照に割り当てることはできません。 -const 参照の場合、静的インスタンスを使用する回避策があります:

static int AVAL = 1;

void f( int &x = AVAL ) {
   // stuff
}

関数 f は次のようになります。パラメーターの有無にかかわらず呼び出されます。パラメーターが指定されていない場合は、デフォルト値の AVAL が使用されます。ただし、このアプローチの実際的な用途は限られています。

以上がC 参照にデフォルトのパラメータ値を設定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。