1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #pragma once #include<cstdio> int add(int a, int b); int main(){ int ans; ans = add(10,20); printf("%d\n",ans); } int add(int a, int b) { return a+b; } | cs |
이렇게 처음에 a 와 b를 더한값을 리턴을 하게 해주려했는데 갑자기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #pragma once #include<cstdio> int add(int a, int b); int main(){ int ans; ans = add(10,20); ans = add(10,20,30); printf("%d\n",ans); } int add(int a, int b) { return a+b; } | cs |
갑자기 3개지를 더하는 결과가 필요하다고 한다. 그때
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #pragma once #include<cstdio> int add(int a, int b); int add(int a, int b, int c); int add(int a, int b, int c, int d); int main(){ int ans; ans = add(10,20); ans = add(10,20,30); printf("%d\n",ans); } int add(int a, int b) { return a+b; } | cs |
이런식으로 함수 이름을 여러번 쓸 수 있게해주는 제도가
Function Overloading || operatio overloading 라는게 있다.
위와 같은 경우를 좀더 편하기위해서 부재인수라는 방식이있다.
add함수를 function overloading 를 이용하여서 여러개를 만들어줬는데
여러가지를 써주는게 또 귀찮다.
그때 쓰는게
Default argument (부재 인수) 라고 부른다.
바로
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #pragma once #include<cstdio> int add(int a, int b, int c = 0, int d = 0, int e = 0, int f = 0); int main(){ int ans; ans = add(10,20); ans = add(10,20,30); printf("%d\n",ans); } int add(int a, int b, int c = 0, int d = 0, int e = 0, int f = 0) { return a+b+c+d+e+f; } | cs |
int add(int a, int b, int c = 0, int d = 0, int e = 0, int f = 0)
위 코드와 같이 여러개의 매개변수들을 정의를 해둔 뒤
값이 안들어오면 이 값은 0이라는 디폴트 값으로 지정을 해준다는 의미이다 !
728x90
728x90
'Dev > [C++]개념정리' 카테고리의 다른 글
[개탱][C++][template][Generic class] (0) | 2018.01.02 |
---|---|
[개탱][C++][cin][cout][endl] (0) | 2018.01.02 |
[개탱][C++][using namespace std][namespace][네임스페이스][스탠다드] (0) | 2018.01.02 |
[개탱][C++][Data Abstraction][Class][클래스][수정이 필요합니다..ㅠ] (0) | 2018.01.02 |
[개탱][C][C++][2차원배열의 구현 & 사용방식] (0) | 2018.01.02 |