오버로딩
함수 이름을 재사용한다.
input 부분인 매개변수가 달라야 재사용 할 수 있다.
output 부분인 함수의 타입만 바꾸면 재사용 할 수 없다.
int Add(int a, int b)
{
return a + b;
}
float Add(float a, float b)
{
return a + b;
}
int main()
{
int result = Add(1, 2);
float result2 = Add(1.5f, 2.1f);
}
스택 오버플로우
int Factorial(int n)
{
if (n <= 1)
return 1;
return n * Factorial(n - 1);
}
int main()
{
int result = Factorial(1000000); // stack overflow 발생!
}
100만 번 함수를 호출하면, stack overflow가 발생한다. 메모리가 부족해서 발생하는 현상이다.
이를 해결하려면, 숫자 크기를 제한하거나 재귀가 아니라 일반 반복문을 사용하는 것처럼 예외처리가 필요하다.
구조체
struct ObjectInfo
{
int type;
int hp;
int attack;
int defence;
};
구조체를 잘 사용하면 가독성을 높이고 변수 이름을 편안하게 지을 수 있다.
ObjectInfo playerInfo;
//int playerType;
//int hp;
//int attack;
//int defence;
playerInfo.hp
ObjectInfo monsterInfo;
//int monsterType;
//int monsterHp;
//int monsterAttack;
//int monsterDefence;
monsterInfo.hp
구조체를 사용하지 않으면 위 예시처럼 여러개의 변수를 만들어야 하기 때문에 관리하기 힘들다.
출처
https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-1/dashboard
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
시리즈를 원활하게 학습하기 위한 기초적인 C++ 문법들에 대해 학습합니다. 어셈블리 언어부터 시작해서 기본 C++ 문법, STL, C++11까지 핵심적인 내용을 압축해서 다루게 됩니다., - 강의 소개 | 인
www.inflearn.com
'프로그래머 > CPP_강의정리' 카테고리의 다른 글
cpp 배열 (0) | 2021.09.14 |
---|---|
cpp 값 전달 방식 (0) | 2021.09.13 |
cpp 호출 스택 (0) | 2021.09.09 |
cpp rand와 상수 (0) | 2021.09.08 |
cpp 입출력과 네임스페이스 (0) | 2021.09.05 |