연산자 오버로딩

보물창고·2021년 7월 28일
0
post-thumbnail
  • 코드 없는 프로그래밍의 강좌를 공부하고 정리한 내용입니다.

함수 오버로딩

: 함수명이 같고, 파라미터의 데이터형, 갯수가 다를때 name mangling을 통해서
컴파일러가 서로 다른 함수를 만든다는 개념이다.

  • cpp reference의 예를 통해 기계어에서는 어떻게 맹글링?이 되는지 확인을 해보자.

  • 기계어

    -> 결과를 보면 _Z8functioni 와 _Z8functiond 로 함수 이름이 변경된 상태로 함수가 정의된것을 확인할 수 있따.

  • 함수 오버로딩은 static polymorphism?이라고 한다.(폴리모피즘)
    왜냐하면 어떤 함수가 바인딩이 될기 compile 시간에 결정이 되기 때문이다.

<-> 이와 반대되는 개념으로는 dynamic polymorphism이 있다.
런타임에 결정이 되고, 예로는 virual- 상속에서 사용된다.

  • 클래스 내의 멤버 함수로도 함수 오버로딩이 가능하다.

연산자 오버로딩

: 말그대로 연산자인 +, - 등의 오퍼레이터들을 오버로딩 한다는
의미이다.

  • 복소수를 통한 예시

    -> 28번줄을 실수는 실수끼리 허수는 허수끼리의 덧셈을 진행하고자 할때는
    연산자 오버로딩을 통해 구현이 가능하다.

: 덧셈, 뺄셈, 곱셈등 유저가 따로 만들어주면 된다.

클래스 연산자 오버로딩은

홍정모님 강의 참고

profile
🔥🔥🔥

0개의 댓글