일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 실습으로 다지는 c#
- c#
- Windows Forms
- 알고리즘
- C++
- 클래스 다이어그램
- 프로젝트
- 강의
- 충남 천안
- 언제나 휴일
- 추천
- 산책하기 좋은 곳
- 소켓 통신
- 무료 동영상 강의
- 표준 입출력
- 안드로이드 앱 개발
- 언제나휴일
- 독립기념관
- 실습
- 소스 코드
- 동영상
- 유튜브 동영상 강의
- 네트워크 프로그래밍
- c언어
- 파이썬
- 원격 제어 프로그램
- 동영상 강의
- 졸업 작품 소재
- 캡슐화
- 표준 라이브러리 함수
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
[C++] 6. 디폴트 매개 변수 7. 매개 변수 이름이 없는 스텁 매개 변수 본문
6. 디폴트 매개 변수
C++언어에서는 함수 입력 매개 변수 중에 디폴트 값을 설정할 수 있습니다. 이러한 디폴트 매개 변수는 대부분 같은 값을 전달할 때 호출하는 곳에서 인자를 전달하지 않아도 사용할 수 있게 해 줍니다.
만약 호의 면적을 구하는 함수에 반지름과 각도를 입력 매개 변수로 받게 하였을 때 각도의 디폴트 값을 2*PI로 설정한다고 가정할게요. 이와 같이 정의하면 호출할 때 반지름만 전달하면 각도는 디폴트 값을 사용하여 계산합니다. 물론 호출하는 곳에서 원하는 각도를 전달할 수도 있어요.
//디폴트 매개 변수
//Program.cpp
#include <iostream>
using namespace std;
double CalculateArea(double radius, double radian=2*3.14)
{
return radius*radius*(radian/2);
}
int main()
{
cout<<"반지름이 3인 원의 넓이:";
cout<<CalculateArea(3)<<endl;
cout<<"반지름이 3인 반원의 넓이:";
cout<<CalculateArea(3,3.14)<<endl;
return 0;
}
▷ 실행 결과
반지름이 3인 원의 넓이:28.26
반지름이 3인 반원의 넓이:14.13
7. 매개 변수 이름이 없는 스텁 매개 변수
C++에서 함수 중복 정의가 가능한 것은 이미 앞에서 다뤘어요.
C++에서는 입력 인자로 전달 받아야 할 형식 인자가 같은 두 개의 함수의 이름을 중복 정의할 수 없을 때 두 개의 함수를 구분하기 위한 목적으로 스텁 매개 변수를 정할 수 있어요. 스텁 매개 변수는 입력 매개 변수 형식은 결정하였지만 변수 이름이 없는 매개 변수예요. 단순히 호출하는 곳에서 어느 함수를 호출하는 것인지 구분하기 위한 목적으로 사용하는 것이예요.
예를 들어 사각형의 면적을 구하는 함수와 삼각형의 면적을 구하는 함수를 만든다고 가정해요. 이 때 두 개의 함수는 모두 두 개의 실수를 인자를 받으면 면적을 구할 수 있을 거예요. 하지만 중복 정의할 수 없겠죠. 이 때 두 함수 중에 하나의 함수는 스텁 매개 변수를 정의하면 함수 중복 정의할 수 있어요.
int CalculateArea(int width,int height)
{
return width*height;
}
int CalculateArea(int width,int height,bool) //세 번째 인자를 스텁 매개 변수로 결정
{
return width*height/2;
}
물론 호출하는 곳에서는 스텁 매개 변수에도 값을 전달해야 합니다. 그리고 스텁 매개 변수로 전달한 값은 단지 어느 함수를 호출하기 위한 것인지 판별하기 위한 것으로 실제 함수 내에서는 전달받은 값을 사용할 수는 없어요.
//스텁 매개 변수
//Program.cpp
#include <iostream>
using namespace std;
int CalculateArea(int width,int height)
{
return width*height;
}
int CalculateArea(int width,int height,bool) //세 번째 인자를 스텁 매개 변수로 결정
{
return width*height/2;
}
int main()
{
cout<<"사각형 넓이:";
cout<<CalculateArea(3,4)<<endl;
cout<<"삼각형 넓이:";
cout<<CalculateArea(3,4,false)<<endl;//스텁 매개 변수에 인자를 전달
return 0;
}
▷ 실행 결과
사각형 넓이:12
삼각형 넓이:6
'C & C++ > 디딤돌 C++' 카테고리의 다른 글
[C++] 11. 논리 형식 bool 제공 12. string 형식 개요 (0) | 2024.04.06 |
---|---|
[C++] 10. 신뢰성 강화(열거형) (0) | 2024.04.05 |
[C++] 9. 레퍼런스 변수 (0) | 2024.04.05 |
[C++] 8. 이름 충돌을 방지하는 namespace (0) | 2024.04.04 |
[C++] 5. 함수 중복 정의 (FUNCTION OVERLOADING) (0) | 2024.04.03 |
[C++] 4. 태그 명을 형식 명으로 사용 (0) | 2024.04.03 |
[C++] 3. 입출력 개요 (cin, cout) (1) | 2024.01.09 |
[C++] 1. 들어가기에 앞서 2. C++ 언어 소개 및 책의 기술 범위 (1) | 2024.01.09 |