티스토리 뷰

문제 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;
}


=> 함수의 매개변수가 없을 때, 위 아래 두 함수 모두가 조건을 만족하므로

     컴파일러가 무엇을 호출해야 할 지 알 수 없다. 

댓글