C++講座2回です 今回のソースコード 関数の引数にあらかじめ値を代入し、 デフォルト引数にするには関数宣言部の引数に=で値を代入します func(int a = 10); より具体的な例を挙げます class Player{ public: // デフォルト引数は宣言部 void PowerUp(int HP = 100); // インライン定義の場合 void PowerDown(int Damage = 10) { m_HP -= Damage; } }; // メンバ関数定義 void Player::PowerUp(int HP){ m_HP += HP; } // グローバル関数でもデフォルト引数可 void Show(int HP = 1000){ printf(“HP = %d\n”,HP); } デフォルト引数を利用することで関数の引数の値が決まってるものは関数を使うときに引数が省略できます(使うとき楽できる) 注意としては、デフォルト引数は通常の引数の後に書かないとコンパイルエラーになります // ↓コンパイルエラーの例 void Error(int a = 10,int b){} 今回の全ソースコードです // main.cpp #include <iostream> class Player { public: int m_HP; // デフォルト引数は宣言部 void PowerUp(int HP = 100); // インライン定義の場合 void PowerDown(int Damage = 10) { m_HP -= Damage; } }; // メンバ関数定義 void Player::PowerUp(int HP) { m_HP += HP; } // グローバル関数でもデフォルト引数可 void Show(int HP = 1000){ printf("HP = %d\n",HP); } // デフォルト引数は通常の引数の後でないとコンパイルエラー //void Error(int a = 10,int b){} int main() { Player player; player.m_HP = 100; Show(player.m_HP); // 引数省略可 player.PowerUp(); Show(player.m_HP); // 引数をいつも通りいれることも可 player.PowerDown(50); Show(player.m_HP); // グローバル関数のデフォルト引数使用 printf("\nグローバル関数のデフォルト引数使用\n"); Show(); return 0; } |