0

私の「.h」ファイルでは、次のように定義しました。

    example(CQueue* queue = NULL, double code = 0);

私の「.cpp」ファイルの2つの異なる方法では、次を使用する必要があります。

    example(queue);

    example(code2);

どちらの場合もエラーが発生します。オーバーロードしたくなかった。それを定義しています:

    example(CQueue* queue, double code = 0);

唯一の方法?または、現在定義されている方法で定義できますか?

4

2 に答える 2

2

そのように定義できますが、2 番目の呼び出しが機能するとは思わないでください。. があれば、最初のものは問題ないはずqueueですCQueue*。オブジェクトの場合は、そのアドレスを渡す必要があります: &queue

2 番目の呼び出しを次のように変更する必要があります。

example(NULL, code2);

または、あなたが言ったように、オーバーロードします。

于 2012-08-02T21:13:38.880 に答える
1

に特定の値を渡したい場合は、メソッド シグネチャで既定値が指定されている場合でも、以前の省略可能なパラメーターの値も渡す必要codeがあります。

デフォルト値として定義したものを明示的に渡すだけです。example(NULL, code2);

定義は問題ありませんが、呼び出しもできるようにしたい場合は、オーバーロードexample(code2)する必要があります。

example(queue);の宣言に応じて動作するはずですqueue

于 2012-08-02T21:14:39.157 に答える