-
C++ - 함수 선언부에서의 default값에 대한 고찰프로그래밍/C++ 2021. 6. 29. 17:38반응형
선언부를 사용할 때는 선언부에만 default값을 적용해주어야한다.
선언부에서 default를 해주었는데 정의부에도 default를 해주면, 매개변수 재정의라고 컴파일러가 투정부린다.
귀엽기는 하지만 고집을 꺾지 않기에, 수긍하고 말을 들어주는 수밖에 없다.#include<iostream> int adder(int num1=1, int num2=2); void main() { std::cout << adder() << std::endl; std::cout << adder(5) << std::endl; std::cout << adder(3, 5) << std::endl; } int adder(int num1=1, int num2=2) { return num1 + num2; }
그리고 선언부를 사용할 때 아래와 같은 괴상한 문법이 된다. 물론 선언부에서의 변수명은 의미 없는 것은 알고 있다만, 그래도 꾀나 신선한 충격을 준 문법이다.
<아래코드의 선언부를 보자.>
#include<iostream> int adder(int n1=1, int n2=2); void main() { std::cout << adder() << std::endl; std::cout << adder(5) << std::endl; std::cout << adder(3, 5) << std::endl; } int adder(int num1, int num2) { return num1 + num2; }
#include<iostream> int adder(int =1, int =2); void main() { std::cout << adder() << std::endl; std::cout << adder(5) << std::endl; std::cout << adder(3, 5) << std::endl; } int adder(int num1, int num2) { return num1 + num2; }
반응형'프로그래밍 > C++' 카테고리의 다른 글
C++ - 범위지정연산자(Scope Resolution Operator) (0) 2021.07.01 C++ - 인라인 함수(inline function) (0) 2021.06.30 C++ - 매개변수의 default값과 함수 오버로드(overload) (0) 2021.06.29