2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의
앞에서 함수를 정의 하는 방법을 배웠다
예를 들어 2개의 매개변수를 더하는 결과를 돌려주는 함수를
과 같이 짯을것이다.
ps. "plus"이 모호합니다 같은 오류가 발생하면 함수이름을 바꾸어주도록하자.
해당함수는 int형식의 변수 2개를 받아 두개의 합인 int값을 돌려주는 과정을 거치된다.
그런데 여기에 매개변수로 int 대신에 float타입을 넣으면 어떻게 될까?
plus(3.5,5.5) 와 같이 사용하게 되면 3.5 와 5.5 가 넘어갈때 묵시적으로 int형으로 형변환이 되고
plus(3,5) 와 같이 작동한다.
즉 원하는값은 9인데 8이 리턴될것이다.
따라서 float를 매개변수로 가지는 다른 plus함수를 제작해야할것이다.
이런식으로 사실상 같은 기능 기대하는 함수를 제작할때
함수의 이름이 달라지게 된다.
그럴때를 위하여 C++은 함수 오버로딩이라는 기능을 제공한다.
1. 함수 오버로딩
함수 오버로딩은 같은 이름을 가지는 다른 동작을 하는 함수를 의미한다.
다음과 같이 모두 같은 plus 란 이름을 가진 함수이지만 매개변수와 리턴값이 다른 함수를 제작 할 수 있다.
다음과같이 매개변수의 타입에 맞게 알아서 동작하게 된다.
2. 함수 오버로딩방법
1 .함수의 이름을 같게 한다
2. 각각의 함수의 파라미터를 다르게 한다.
-> 파라미터가 같으면 구분을 할 수가 없다
같은 파라미터라면 안되는 이유는 조금만 생각해보면 당연한것이다.
컴퓨터가 두개중 무엇을사용해야하는지 알수 없기 때문이다.
'교육 노트 > C++ 기초강의' 카테고리의 다른 글
[C++ 때려 잡기] C++ 기초강의 2-4 재귀함수 (0) | 2018.08.26 |
---|---|
[C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference (0) | 2018.08.25 |
[C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의 (0) | 2018.08.24 |
[C++ 때려 잡기] C++ 기초강의 1-advanced 기본문법 (0) | 2018.08.24 |
[C++ 때려 잡기] C++ 기초강의 1-6 기본문법-반복문 (2) | 2018.08.24 |