Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] 함수 마무리 (오버로딩, 기본 인자값, 스택 오버플로우) 본문
오버로딩 (중복 정의 : 함수명 재사용)
호출 시 같은 이름의 함수더라도 매개변수로 인해 구분이 가능할 경우 같은 이름이어도 사용이 가능하다.
- 매개변수의 개수가 다를 경우 (기본 인자값 주의)
- 매개변수의 타입이 다를 경우 (순서 포함)
- 반환 형식은 해당되지 않음
#include <iostream>
using namespace std;
int Add(int a, int b)
{
return a + b;
}
int Add(int a)
{
return a + 1;
}
float Add(float a, float b)
{
return a + b;
}
int main()
{
int result = Add(1, 2);
cout << result << endl;
}
기본 인자값
#include <iostream>
using namespace std;
// 기본 인자값이 있을 경우 함수 호출시 생략 가능
// 단, 기본 인자값이 설정 된 매개변수는 맨 뒤로 위치해야함
void SetPlayerInfo(int hp, int mp, int attack, int guildid = 1, int castleld = 1)
{
}
int main()
{
SetPlayerInfo(100, 50, 10);
}
스택 오버플로우
#include <iostream>
using namespace std;
// 스택 오버플로우
// 재귀함수가 아닌 while문으로 연산을 하거나 너무 큰 수를 입력하지 못하도록 예외처리가 필요
// 너무 많은 함수 호출을 할 경우 스택 메모리 부족으로 인해 스택 오버플로우에 빠지게 됨
int Factorial(int a)
{
if (a <= 1)
return 1;
return a * Factorial(a - 1);
}
int main()
{
int result = Factorial(1000000);
cout << result << endl;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] TextRPG #2 (구조체) (0) | 2022.06.28 |
---|---|
[C++] TextRPG #1 (포인터 X, 기초) (0) | 2022.06.15 |
[C++] 함수 기초 (0) | 2022.06.12 |
[C++] 열거형 (0) | 2022.06.12 |
[C++] 가위 바위 보 (0) | 2022.06.12 |