일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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#
- 유튜브 동영상 강의
- Windows Forms
- 파이썬
- 표준 라이브러리 함수
- 클래스 다이어그램
- 동영상
- 산책하기 좋은 곳
- c#
- 안드로이드 앱 개발
- 독립기념관
- 원격 제어 프로그램
- 무료 동영상 강의
- 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 |