티스토리 뷰
C와는 다르게 C++에서는 매개변수를 사용자가 기입하지 않게 되면, 자동으로 저장되는 디폴트 값이 존재한다.
#include<iostream> using std::cout; int add(int a, int b = 7){ return a+b; } int main(){ cout<<add(5); return 0; }
다음과 같은 코드가 있다. add(int a, int b=7)이라는 함수가 정의 되어있다. main()에서는 add(5)값으로 하나의 인자값만을 넘겨준다. 이렇게 되면 add()함수는 b값이 디폴트 7값으로 저장되어 해당 함수가 실행 된다.
#include<iostream> using std::cout; int add(int a = 7, int b){ return a+b; } int main(){ cout<<add(5); return 0; }
다음과 같이, b값이 아닌 a값만 디폴트 값이 저장되있는 경우에는 오류를 발생한다.
이는, add(5)에서 5는 a값으로 지정되고, b는 디폴트 값도 없기 때문에 오류를 발생시킨다. 즉, 매개변수 값은 매개변수의 디폴트값 유/무와 상관없이 순서대로 지정된다.
다음과 같은 경우는 어떻게 될까?
#include<iostream> using std::cout; int add(int a = 7, int b = 2){ return a+b; } int add(int a = 3){ return a+10; } int main(){ cout<<add(5); return 0; }
이 경우는 호출하는 add()가 둘 중 어떤 함수를 호출하는 지 알 수 없기 때문에, 이 경우에도 에러를 발생한다.
'Language > C++' 카테고리의 다른 글
[C++] 예외처리 (0) | 2013.10.06 |
---|---|
[C++] 함수템플릿과 템플릿함수 (0) | 2013.10.06 |
[C++] 멤버 이니셜라이저 (0) | 2013.10.05 |
[C++] 생성자와 소멸자 (0) | 2013.10.05 |
[C++] namespace (0) | 2013.10.05 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday