C C++/열혈 C++ 연습문제
[문제 01-3] 매개변수의 디폴트 값
개발하는꼬물이
2017. 8. 24. 13:12
문제 1. 예제 DefaultValue3.cpp에 정의된 함수 BoxVolume를 함수 오버로딩의 형태로 재 구현해보자. main 함수는 변경하지 않아야하며, 실행결과도 동일해야 한다.
#include <iostream> using namespace std; int BoxVolum(int length, int width, int hight) { return length * width * hight; } int BoxVolum(int length, int width) { return length * width * 1; } int BoxVolum(int length) { return length * 1 * 1; } int main() { cout << "[3, 3, 3] : " << BoxVolum(3, 3, 3) << endl; cout << "[5, 5, D] : " << BoxVolum(5, 5) << endl; cout << "[7, D, D] : " << BoxVolum(7) << endl; return 0; }
문제 2. 다음과 같은 형태의 함수 오버로딩은 문제가 있다. 어떤 문제가 있는지 설명해보자.
int SimpleFunc(int a = 10) { return a + 1; } int SimpleFunc(void) { return 10; }
=> 함수의 매개변수가 없을 때, 위 아래 두 함수 모두가 조건을 만족하므로
컴파일러가 무엇을 호출해야 할 지 알 수 없다.