// デフォルト引数を持つ関数のプロトタイプ宣言と実装
// プロトタイプ宣言がある場合は、プロトタイプのみデフォルト値を持たせる?

#include <iostream>

using namespace std;

void foo( int a = 90, int b = 100 );


int
main( )
{
	cout << "foo( )" << endl;
	foo( );

	cout << "foo( 20 )" << endl;
	foo( 20 );

	cout << "foo( 20, 30)" << endl;
	foo( 20, 30 );

	return 0;
}


void
foo( int a , int b )
{
	int x = a;
	int y = b;

	cout << " x = " << x << endl;
	cout << " y = " << y << endl;
}


/*
	1. その通りです。プロトタイプのみデフォルト値を持たせるようにします。
	2. プロトタイプ宣言にも関数定義にもデフォルト値を持たせると、コンパイル
		が通りません。(再定義)
	3. 当然ですが、プロトタイプ宣言でデフォルト値をもたせず、関数定義に
		デフォルト値を持たせるのは論外です。(下記例)
			void bar( int a , char c );
			void bar( int a=10, char c = 'A' ) {
				...
			}
*/


// end of file