0

次の関数宣言:

void Foo:DoSomething( ULONG &Count = 0) { .... }

次のコンパイル時エラーが発生します

error C2440: default argument cannot convert from 'int' to 'ULONG &'

Count値にパラメータが指定されていない場合にゼロになるように、署名を作成する正しい方法は何ですか。

4

2 に答える 2

2

Countへの非定数参照を使用しているため、デフォルトでr値を割り当てることはできません。

使用する

void Foo:DoSomething( const ULONG &Count = 0) { .... }

void Foo:DoSomething( ULONG Count = 0) { .... }

于 2013-02-11T20:53:05.193 に答える
1

非定数参照に対してこれを行うことはできません。参照はメモリ内のアドレスを指しています。特に参照セマンティクスが必要な場合を除いて、値を渡すことをお勧めします。

于 2013-02-11T20:58:42.990 に答える