#include <iostream>
// 디폴트값 지정, 함수 오버로드
// 디폴트 확인
int BoxVolume(int width=1, int length=1, int height=1)
{
int Volume;
Volume = width * length * height;
return Volume;
}
// 오버로드 확인
void Showmessage()
{
std::cout << "Happy birthday!" << std::endl;
}
void Showmessage(int num)
{
std::cout << "Lebron scored " << num << " points tonight" << std::endl;
}
int Showmessage(int num1, int num2)
{
return num1 + num2;
}
int main()
{
// 디폴트 작동 확인
int Volume;
Volume=BoxVolume(2, 3, 4);
std::cout << "Volume is : " << Volume << std::endl;
Volume=BoxVolume(2, 3);
std::cout << "Volume is : " << Volume << std::endl;
Volume=BoxVolume(2);
std::cout << "Volume is : " << Volume << std::endl << std::endl;
// 함수 오버로드 확인
Showmessage();
Showmessage(48);
std::cout << Showmessage(22, 10) << std::endl;
return 0;
}
함수를 불러와 인자를 입력했을 때 매개변수의 좌측부터 복사가 진행되므로 디폴트는 매개변수 우측부터 지정해 주어야 한다. 그렇지 않을 시 위와같은 에러가 발생한다.
매개변수는 우측부터 디폴트처리 해야 한다. 또한 함수 오버로드는 반환형, 매개변수의 형, 개수가 다르다면 언제든지 활용할 수 있다.