C++ Chapter 01. C언어 기반의 C++ 1. 01-3 매개변수의 디폴트 값(Default Value)
C,C++/CONCEPT 2018. 2. 28. 09:18 |C++ Chapter 01. C언어 기반의 C++ 1.
01-3 매개변수의 디폴트 값(Default Value)
* 매개변수에 설정하는 '디폴트 값'의 의미
// 기본적으로 설정되어 있는 값
// 매개변수에 디폴트 값이 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자전달이 가능하다.
// 그리고 전달되는 인자는 왼쪽에서부터 채워져 나가고, 부족분은 디폴트 값으로 채워진다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <iostream> int Adder(int num1=1, int num2=2) // 디폴트 값 { return num1+num2; } int main(void) { std::cout<<Adder()<<std::endl; // 3 std::cout<<Adder(5)<<std::endl; // (인자는 첫 번째 매개변수로 전달된다) // 7 std::cout<<Adder(3, 5)<<std::endl; // 8 return 0; } | cs |
* 디폴트 값은 함수의 선언 부분에만 표현하면 됩니다.
// 함수의 원형을 별도로 선언하는 경우, 매개변수의 디폴트 값은 함수의 원형 선언에만 위치시켜야 한다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> int Adder(int num1=1, int num2=2); // int main(void) { std::cout<<Adder()<<std::endl; std::cout<<Adder(5)<<std::endl; std::cout<<Adder(3, 5)<<std::endl; return 0; } int Adder(int num1, int num2) { return num1+num2; } | cs |
* 부분적 디폴트 값 설정
// 함수에 전달되는 인자가 왼쪽에서부터 오른쪽으로 채워지기 때문에
// 반드시 오른쪽 매개변수의 디폴트 값부터 채우는 형태로 정의해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include<iostream> int BoxVolume(int length, int width=1, int height=1); // 매개변수의 디폴트 값부터 채우는 형태로 정의해야 한다 int main() { // 함수애 전달되는 인자는 왼쪽부터 오른쪽으로 채워진다 std::cout<<"[3, 3, 3] : "<<BoxVolume(3, 3, 3)<<std::endl; // 27 (3,3,3) std::cout<<"[5, 5, D] : "<<BoxVolume(5, 5)<<std::endl; // 25 (5,5,1) std::cout<<"[7, D, D] : "<<BoxVolume(7)<<std::endl; // 7 (7,1,1) // std::cout<<"[D, D, D] : "<<BoxVolume()<<std::endl; // 컴파일 에러 return 0; } int BoxVolume(int length, int width, int height) { return length*width*height; } | cs |
'C,C++ > CONCEPT' 카테고리의 다른 글
C++ Chapter 01. C언어 기반의 C++ 1. 01-5 이름공간(namespace)에 대한 소개 (0) | 2018.02.28 |
---|---|
C++ Chapter 01. C언어 기반의 C++ 1. 01-4 인라인(inline) 함수 (0) | 2018.02.28 |
C++ Chapter 01. C언어 기반의 C++ 1. 01-2 함수 오버로딩(Function Overloading) (0) | 2018.02.28 |
C++ Chapter 01. C언어 기반의 C++ 1. 01-1 printf와 scanf를 대신하는 입출력 방식 (1) | 2018.02.28 |
C chapter27. 파일의 분할과 헤더파일의 디자인. 27-3 헤더파일의 디자인과 활용 (0) | 2018.02.23 |