/*
예제 DefaultValue3.cpp에 정의된 함수 BoxVolume를 "매개변수의 디폴트 값 지정" 형태가 아닌, '함수 오버로딩'의 형태로 재 구현해보자.
물론 main 함수는 변경하지 않아야 하며, 실행결과도 동일해야한다
*/
/*
DefulatValue3.cpp
#include <iostream>
int BoxVolume(int length, int width = 1, int height = 1); //첫번째 매개변수에는 디폴트 값이 지정되지 않았으므로, BoxVolume 함수를 호출할 때는 반드시 하나 이상의 인자를 전달해야한다
int main(void)
{
std::cout << "[3, 3, 3]: " << BoxVolume(3, 3, 3) << std::endl; //모두 유효한 함수 호출문이다. 전달되는 인자는 왼쪽에서부터 채워지고 부족한 부분은 디폴트 값이 대신 전달된다
std::cout << "[5, 5, D]: " << BoxVolume(5, 5) << std::endl;
std::cout << "[7, D, D]: " << BoxVolume(7) << std::endl;
//std::cout << "[D, D, D]: " << BoxVolume() << std::endl; //모든 매개변수에 디폴트 값이 지정된 것이 아니기 때문에, 인자를 전달하지 않는 형태의 함수 호출은 컴파일 에러로 이어진다
return 0;
}
int BoxVolume(int length, int width, int height)
{
return length*width*height;
}
*/
#include <iostream>
int BoxVolume(int num1, int num2, int num3);
int BoxVolume(int num1, int num2);
int BoxVolume(int num1);
int main(void)
{
std::cout << "[3, 3, 3]: " << BoxVolume(3, 3, 3) << std::endl;
std::cout << "[5, 5, D]: " << BoxVolume(5, 5) << std::endl;
std::cout << "[7, D, D]: " << BoxVolume(7) << std::endl;
//std::cout << "[D, D, D]: " << BoxVolume() << std::endl;
return 0;
}
int BoxVolume(int num1, int num2, int num3)
{
return num1 * num2 * num3;
}
int BoxVolume(int num1, int num2)
{
return num1 * num2 * 1;
}
int BoxVolume(int num1)
{
return num1 * 1 * 1;
}
개발 환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
[참고] 열혈 C++ 프로그래밍 윤성우 저
'C++ > 열혈 C++ 프로그래밍(윤성우 저)' 카테고리의 다른 글
열혈 C++ 프로그래밍 2-1 문제 (2) | 2017.05.28 |
---|---|
OOP 단계별 프로젝트 1 (0) | 2017.05.28 |
열혈 C++ 프로그래밍 1-4 문제 (0) | 2017.05.28 |
열혈 C++ 프로그래밍 1-2 문제 (0) | 2017.05.28 |
열혈 C++ 프로그래밍 1-1 문제 (0) | 2017.05.28 |