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

今回のソースコード
filedefaultargument.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;
}
選択肢 投票
ok、次行こ、次 0  
(;^ω^)? 0  

添付ファイル: filedefaultargument.zip 211件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-26 (日) 00:28:20