[C++]_S4-03_함수_마무리

신치우·2024년 6월 30일

CPP

목록 보기
26/62
#include <iostream>
using namespace std;

// 함수 마무리

// 오버로딩 (중복 정의 : 함수 이름의 재상요)
// - 매개변수 갯구가 다르거나
// - 매개변수 타입이 다르거나 (순서가 다른걸 포함)

int Add(int a, int b)
{
	int result = a + b;
	return result;
}

float AddFloat(float a, float b)
{
	float result = a + b;
	return result;
}

// error가 발생하지 않음
// 함수 이름은 같지만 input이 다르므로 코드가 스스로 선택이 가능함
float Add(float a, float b)
{
	float result = a + b;
	return result;
}

// error가 발생함
// 함수 이름과 input이 동일하여 코드가 오버로딩으로 판단함--> 반환 타입은 중요하지 않음
float Add(int a, int b)
{
	int result = a + b;
	return result;
}

// 기본 인자값
// guildId의 경우 초기 값을 0으로 설정해놓기 때문에 함수를 호출할때 없어도 문제가 되지 않음
// 초기 값을 0으로 설정하기 위해서는 꼭 변수의 마지막에 설정해야함.
// 중간에 있으면 함수를 호출할때 변수가 꼬여서 에러를 발생시킴
// 초기 값이 있더라도 input에서 값을 설정해주면 input 값이 들어가게됨
void SetPlayerInfo(int hp, int mp, int attack, int guildId = 0)
{

}

int main()
{
	int result = Add(1.5f, 2.1f);
	cout << result << endl;

	SetPlayerInfo(100, 40, 10); // hp = 100, mp = 40, attack = 10, guildId = 0
	SetPlayerInfo(100, 40, 10, 1); // hp = 100, mp = 40, attack = 10, guildId = 1


	return 0;
}

애초에 함수 이름을 똑같이 짓지 않도록 하자.

profile
https://shin8037.tistory.com/

0개의 댓글