카테고리 없음
[C++] 함수 오버로딩(overloading)
s뽈록이s
2013. 7. 19. 14:22
int function() { return 5; } int function(int a, int b) { return a + b; } void main() { cout << "function() = " << function() << endl; cout << "function(a, b) = " << function(5, 5) << endl; }
프로그램 실행화면
C언어에서는 상상못할 일이 벌어졌다. 바로 이름이 똑같은 함수가 여러개 있다는 것이다. function이란 이름의 함수가 두 개 있다.
함수의 구분 방법으로 '함수의 이름' + '매개 변수'를 이용한다. 함수 이름은 같지만 매개 변수가 다르기 때문에 이렇게 사용할 수 있는 것이다.
만약 int function(char a, char b)로 선언하면 가능할까? 이것도 가능하다. 매개변수의 타입이 다르기 때문이다. 캐릭터형 변수를 넘겨주면 실행된다.
사칙연산을 할 때 나누기는 실수형 변수가 필요하다. 그리고 스왑할 때도 변수형에 따라 각기 다른 함수를 호출해야만 했다.
하지만 C++에서는 함수오버로딩을 통해 조금은 편하게 프로그래밍할 수 있다. 예전 스타크래프트1이 유행하고 있을 때 오버로딩 이름을 보고 3cm 드랍 공격이 생각났었다.
로스트 템플에서 5,7시 기지는 가까워서 이런 식으로 당하면 참 난감했는데 말이다. 망할 스타크래프트2 때문에 게임 채널에서도 유즈맵 도전하는 것도 사라지고... 롤에서 유즈맵이 좀 나왔으면 좋겠다.