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 サイトの他の関連記事を参照してください。