[C++] 디폴트값 의미

C++ 2019. 12. 6. 17:05

#include
using namespace std;

void add(int a=1, int b=2){
cout << a << ' ' << b << endl;
}

int main(){
add();
add(1,2);
return 0;
}

// 두 함수의 출력값이 같다.
// add()에는 매개변수에 있는 값이 들어가고 add(1,2)는 매개변수에 정수값을 넣어준다.
// 함수로 전달된 개수가 적을 때는 왼쪽부터 채워나간다. add(5)만 전달시 a는 5로 b는 2로 채워짐
// 디폴트 값은 왼쪽부터 비워나간다.
// add(int a, int b=2); // 가능하다.
// add(int a=1, int b); // 불가능하다

* 문제 - 에러가 나는 이유는?

#include
using namespace std;

int sim(int a = 10){
return a+1;
}

int sim(void){
return 10;
}

int main(){
int b;
b = sim();
cout << b << endl;
return 0;
}

// 답 - sim() 호출시 오버로딩된 함수 두 개가 모두 포함되므로 컴파일에러 발생
값 전달시 sim(int a=10)으로 전달되어 올바른 값 출력

'C++' 카테고리의 다른 글

[C++] 이름공간  (0) 2019.12.06
[C++] 인라인 함수  (0) 2019.12.06
[C++] 함수 오버로딩  (0) 2019.12.06
[C++] dll 연결 방법  (0) 2019.12.06
[C++] 동적 바인딩 virtual 사용하기  (0) 2019.12.05
블로그 이미지

ryancha9

https://blog.naver.com/7246lsy

,