Pink Transparent Star

C++언어/개념 공부

[ 열혈 c++ 프로그래밍 ] Part1 - 3

채유나 2022. 8. 25. 17:03
728x90

[ 매개변수의 디폴드 값 ]

더보기

01. 예제 DefaultValue3.cpp에 정의된 함수 BoxVolume를 '매개변수의 디폴드 값 지정' 형태가 아닌, ' 함수 오버로딩'의 형태로 재 구현해보자. 물론 main 함수는 변경하지 않아야 하며, 실행결과도 동일해야한다.

 

	
#include <iostream>

using namespace std;


int BoxVolume(int x, int y, int z)
{
	return x * y * z;
}

int BoxVolume(int x, int y)
{
	return x * y;
}

int BoxVolume(int x)
{
	return x;
}

int BoxVolume()
{
	return 0;
}

int main(void)
{
	cout << " [3,3,3] : " << BoxVolume(3,3,3) << endl;
	cout << " [5,5,D] : " << BoxVolume(5,5) << endl;
	cout << " [7,D,D] : " << BoxVolume(7) << endl;

	return 0;
}
01-3 문제 1

 

더보기

02. 다음과 같은 형태로의 함수 오버로딩은 문제가 있다. 어떠한 문제가 있는지 설명해보자.

#include <iostream>

using namespace std;

int SimpleFunc(int a = 10)
{
	return a + 1;
}
int SimpleFunc(void)
{
	return 10;
}

 

SimpleFunc()과 같이 인자의 값을 입력하지 않고 함수 호출 시 두 함수의 조건이 만족하기 때문에 문제가 생긴다.

 

728x90