1. ホーム
  2. c++

[解決済み] 関数パラメータのデフォルト値

2022-05-15 06:02:14

質問

1.

int Add (int a, int b = 3);
int Add (int a, int b)
{

}

2.

int Add (int a, int b);
int Add (int a, int b = 3)
{

}

どちらも動作します。どちらが標準的な方法であり なぜ ?

どのように解決するのですか?

宣言をヘッダファイルに、定義を別の .cpp ファイル、そして #include のヘッダは、別の .cpp ファイルから読み込むと、その違いを確認することができます。

具体的には、仮に

lib.h

int Add(int a, int b);

lib.cpp

int Add(int a, int b = 3) {
   ...
}

test.cpp

#include "lib.h"

int main() {
    Add(4);
}

のコンパイルは test.cpp のコンパイルでは、デフォルトのパラメータ宣言が表示されず、エラーとなり失敗します。

このため、デフォルトのパラメータ定義は通常、関数 宣言 :

lib.h

int Add(int a, int b = 3);