728x90
void TestFunc()
{
}
void TestFunc(float a)
{
}
void TestFunc(float a, float b)
{
}
TestFunc();
TestFunc(10);
TestFunc(10, 200);
함수의 오버로딩과 관련하여 디폴트 값인 TestFunc()와 매개변수 인자값을 넣어준 함수들을 다음과 같이 실행할 수 있다.
하지만 이런 경우, TestFunc() 함수의 파라미터 값이 안맞기 때문에 오류가 생긴다.
이럴 때는 파라미터에 인자 값을 할당해주므로서 오류를 해결할 수 있다.
TestFunc() 함수는 기본적으로 float a = 0 과 float b = 10 이라는 인자 값을 가지게 되고, TestFunc(10)을 호출하면 float a = 10, float b = 10을 가지게 된다. 마찬가지로 TestFunc(10, 200)은 float a = 10, float b = 200 값으로 들어오게 된다.
마찬가지로 TestFunc() 매개변수 중 float b 값을 따로 선언해주지 않으면 다음과 같이 오류가 다시 발생함을 확인할 수 있다. 따라서 함수 오버로딩 문법 오류를 피하려면 디폴트 인수 값을 넣을 때 뒤에서부터 채워주면 된다.
728x90
'게임 프로그래밍 > C#' 카테고리의 다른 글
C# 반복문에 대해 학습한 내용 정리, i++ / ++i 증감식 차이점 비교 (1) | 2022.09.25 |
---|---|
C# 유니티 지역변수 & 전역변수 (0) | 2022.09.19 |
C# 비선형 자료구조 - 그래프(Graph) (0) | 2021.12.28 |
C# 비선형 자료구조 - 트리(Tree) (0) | 2021.12.28 |
C# 정렬 알고리즘 - 힙정렬(Heap sort) (0) | 2021.12.27 |