ホームページ > バックエンド開発 > C++ > C 関数は非 Const 参照パラメータのデフォルト値を持つことができますか?

C 関数は非 Const 参照パラメータのデフォルト値を持つことができますか?

Susan Sarandon
リリース: 2024-11-29 17:54:11
オリジナル
686 人が閲覧しました

Can C   Functions Have Default Values for Non-Const Reference Parameters?

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

C でパラメーターを参照によって渡す場合、そのデフォルト値を指定できますか?

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

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
ログイン後にコピー

このコードをコンパイルしようとするとエラーが発生します:

error C2440: 'default argument' : cannot convert from 'const int' to 'unsigned long &'
A reference that is not to 'const' cannot be bound to a non-lvalue
ログイン後にコピー

答え

デフォルト値は割り当てることしかできません非定数参照ではなく、定数参照に。これは、C が一時 (この場合はデフォルト値) を定数以外の参照にバインドすることを禁止しているためです。

この制約を回避するには、実際のインスタンスをデフォルト値として使用できます。

static int AVAL = 1;

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

int main() {
     f();       // equivalent to f(AVAL);
}
ログイン後にコピー

ただし、この方法の実際的な適用可能性は限られています。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート