반응형
0. 시작하기
- 맥 운영체제(OSX)에서 작성하였습니다.
- IDE는 VScode를 사용하였습니다. ( 사용법 => https://youngq.tistory.com/category/IDE/VScode)
- 모든 코드는 https://github.com/yekyu94 에 업로드 됩니다.
1. 매개변수의 기본값 ( CPP/F_DefaultValue.cpp )
C++ 역시도 다른 언어와 마찬가지로 매개변수의 기본값을 설정할 수 있습니다.
방법 역시도 동일합니다.
아래는 이전에 다루었던 '함수 오버로딩'에 매개변수 기본값을 정해준 코드입니다.
#include <iostream>
int func(int x=10){ // 1번 함수
return x;
}
int func(int x, int y, int z=10){ // 2번 함수
return x+y+z;
}
int main(void){
std::cout << func() << std::endl; // 1번 함수 수행
std::cout << func(10) << std::endl; // 1번 함수 수행
std::cout << func(10, 20) << std::endl; // 2번 함수 수행
std::cout << func(10, 20, 30) << std::endl; // 2번 함수 수행
return 0;
}
여기서 주의할 부분은 '매개변수 기본값'을 정해줌에 따라서 '함수 오버로딩'의 조건인 '인자에 의한 구분가능성'이 유지되어야 한다는 것입니다.
만약 위의 함수에 아래와 같은 함수가 함께있다면 [구분가능성]이 사라져 애러가 발생합니다.
int func(int x=10){ // 1번 함수
return x;
}
int func(int x, int y, int z=10){ // 2번 함수
return x+y+z;
}
int func(int x, int y=10){ // 오버로딩 규칭 위반
return x+y;
}
함수 선언 위치에 따른 기본값 설정 (
코드를 작성할 때, 보통 [함수 선언 -> 메인함수 -> 함수 정의]의 순서로 작성하는 경우가 많습니다.
함수의 정의부분이 너무 길게되면 자주 사용되는 메인함수가 최하단으로 밀려나 불편하기 때문이죠.
이와 같은경우 매개변수의 기본값 설정은 [함수 선언]부분에 작성합니다.
예제 코드를 봐주세요.
#include <iostream>
int func(int x=10, int y=10); // 함수 선언시에 기본값 설정
int main(void){
std::cout << func() << std::endl;
return 0;
}
int func(int x, int y){
return x+y;
}
반응형
'프로그래밍 > C++ - 이론' 카테고리의 다른 글
[C++ 정리] 6. 메모리 구조 (Code, Data, Stack, Heap) (0) | 2019.08.05 |
---|---|
[C++ 정리] 5. 네임스페이스 (NameSpace) (1) | 2019.08.05 |
[C++ 정리] 4. 인라인 함수 (Inline Function) (0) | 2019.08.04 |
[C++ 정리] 2. 함수 오버로딩 - Overloading (0) | 2019.08.02 |
[C++ 정리] 1. 기본입출력 (0) | 2019.08.02 |