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