C++/열혈 C++ 프로그래밍(윤성우 저)

열혈 C++ 프로그래밍 1-3 문제

꾸준함. 2017. 5. 28. 16:50

/*

예제 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++ 프로그래밍 윤성우 저

반응형