コンパイラ エラー C2548
'class::member' : parameter パラメーターに既定のパラメーターがありません
既定のパラメーター リストにパラメーターがありません。 パラメーター リスト内の任意の場所に既定のパラメーターを指定する場合は、現在の宣言内のすべての後続のパラメーターまたは同じスコープ内の以前の宣言の既定のパラメーターを定義する必要があります。
例
次の例では、次の C2548 が生成されます。
func1
既定の引数b
がないためです。func3
既定の引数c
がないためです。
次の例では C2548 は生成されません。
func2
必要なすべての既定の引数が指定されているためです。- 前の宣言で既定の引数
c
が指定され、同じスコープ内にあるため、2 番目func4
の宣言。 - 3 番目
func4
の宣言は、既定の引数とc
以前に指定された引数のb
両方であるためです。
// C2548.cpp
// compile with: /c
void func1(int a = 1, int b, int c = 3); // C2548
void func2(int a = 1, int b = 2, int c = 3); // OK
void func3(int a, int b = 2, int c); // C2548
void func4(int a, int b, int c = 3); // OK
void func4(int a, int b = 2, int c); // OK
void func4(int a = 1, int b, int c); // OK