본문 바로가기
C,C++/Error & Warning

[C++] C2572 컴파일러 오류. redefinition of default argument

by woohyeon 2020. 1. 11.
반응형
// declaration
void func(int n = 0);

// definition
void func(int n = 0) // C2572
{
  ....
}


void func(int n) // OK
{
  ....
}

위처럼 디폴트 매개변수를 가지는 함수를 작성하다 다음과 같은 에러가 떴음.

선언과 정의를 분리하여 작성하였고, 선언과 정의에 모두 디폴트 매개변수를 쓰면 아래와 같이 C2572 에러 발생

에러 내용은 디폴트 매개변수의 재정의. 선언에 디폴트 매개 변수를 쓰고 정의에도 쓸 경우 디폴트 값이 다를 경우를 막기 위한 에러인 듯 함.


기본 매개 변수는 다시 정의할 수 없습니다. 매개 변수에 다른 값을 지정 해야 하는 경우에는 기본 매개 변수를 정의 하지 않은 상태로 두어야 합니다.

https://docs.microsoft.com/ko-kr/cpp/error-messages/compiler-errors-2/compiler-error-c2572?view=vs-2019




댓글