본문 바로가기
IT(기존 자료 보관용)

윤성우의 열혈 C++ 프로그래밍 챕터1 문제 01-3-1 - 매개변수의 디폴트 값

by 공학코드 2013. 3. 19.
728x90
반응형

열혈 C++프로그래밍 챕터1 문제 01-3의 문제1번에 대한 포스트입니다.


 윤성우의 열혈 C++ 프로그래밍 챕터1 문제 01-3-1

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


DefaultValue3 소스

   1:  #include<iostream>
   2:  int BoxVolume(int length, int width, int height);
   3:  int BoxVolume(int length, int width);
   4:  int BoxVolume(int length);
   5:   
   6:  int main(void)
   7:  {
   8:      std::cout<<"[3, 3, 3] : "<<BoxVolume(3, 3, 3)<<std::endl;
   9:      std::cout<<"[5, 5, D] : "<<BoxVolume(5, 5)<<std::endl;
  10:      std::cout<<"[7, D, D] : "<<BoxVolume(7)<<std::endl;
  11:  //    std::cout<<"[D, D, D] : "<<BoxVolume(3, 3, 3)<<std::endl;
  12:      return 0;
  13:  }
  14:   
  15:  int BoxVolume(int length, int width, int height)
  16:  {
  17:      return length*width*height;
  18:  }
  19:   
  20:  int BoxVolume(int length, int width)
  21:  {
  22:      return length*width;
  23:  }
  24:   
  25:  int BoxVolume(int length)
  26:  {
  27:      return length;
  28:  }





 윤성우의 열혈 C++ 프로그래밍 챕터1 문제 01-3-1 해답


   1:  #include<iostream>
   2:  int BoxVolume(int length, int width, int height);
   3:  int BoxVolume(int length, int width);
   4:  int BoxVolume(int length);
   5:   
   6:  int main(void)
   7:  {
   8:      std::cout<<"[3, 3, 3] : "<<BoxVolume(3, 3, 3)<<std::endl;
   9:      std::cout<<"[5, 5, D] : "<<BoxVolume(5, 5)<<std::endl;
  10:      std::cout<<"[7, D, D] : "<<BoxVolume(7)<<std::endl;
  11:  //    std::cout<<"[D, D, D] : "<<BoxVolume(3, 3, 3)<<std::endl;
  12:      return 0;
  13:  }
  14:   
  15:  int BoxVolume(int length, int width, int height)
  16:  {
  17:      return length*width*height;
  18:  }
  19:   
  20:  int BoxVolume(int length, int width)
  21:  {
  22:      return length*width;
  23:  }
  24:   
  25:  int BoxVolume(int length)
  26:  {
  27:      return length;
  28:  }


함수 오버로딩을 위해서 매개변수 수가 다르고 이름이 같은 함수를 세가지 정의해주고 호출해주면 된다.




728x90
반응형

댓글