// デフォルト引数を持つ関数のプロトタイプ宣言と実装 // プロトタイプ宣言がある場合は、プロトタイプのみデフォルト値を持たせる? #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