C++講座2回です
今回はデフォルト引数についてです。

今回のソースコード
&ref(defaultargument.zip);

関数の引数にあらかじめ値を代入し、
関数使用時にその引数を省略できる省略ができる引数をデフォルト引数と呼びます

引数に=で値を代入します
デフォルト引数にするには関数宣言部の引数に=で値を代入します
 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;
 }

#vote(ok、次行こ、次[0],(;^ω^)?[0])

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS