프로그래밍/C++

C++ - 함수 선언부에서의 default값에 대한 고찰

꿈꾸는 사람_Anthony 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;
}
반응형