코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (393)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (3)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • oracle
  • javascript
  • linux
  • python
  • Android
  • CentOS
  • 자바스크립트
  • Spring
  • r
  • jsp
  • Java
  • 파이썬

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

programming/cpp

[C++] Overloading

2018. 3. 6. 15:17
반응형


Overloading

매개변수의 개수나 타입이 달라야만 쓸 수 있다.


같은 기능에 맞게 묶어라!

오버로딩의 목적에 맞는 것만 사용해라!


C++에는 크게 2가지 오버로딩이 있다.

① Explicit Overloading(명시적 오버로딩) (자바에서 배운것)

② implicit Overloading(암시적 오버로딩) (코딩은 1개인데 함수는 여러개다) ==> 디폴트 인자값을 말한다


암시적 오버로딩을 알려면 디폴트 인자값을 알아야 한다!


Default Argument (디폴트 인자)


매개변수 초기값을 준 개수 + 1 만큼있다


void disp(int a = 10, int b = 20)    // 니가 안주면 내가 기본값을 줄거야라는 뜻

{


}


C++에서는 매개변수에서 값을 넣을 수 있다 ==> 디폴트 인자값

'내가 어떤 값을 주겠다' 이야기야



cf. 명시적 오버로딩

void disp(int a, int b);

void disp(int a);

void disp();


암시적 오버로딩은

void disp(int a = 0, int b = 0);

=> 이 함수는 3개다


disp(10, 20);    // 10, 20

disp(10);        // 10, 0

disp();            // 0, 0



암시적 오버로딩의 장점

코드를 간략하게 짤 수 있다.


암시적 오버로딩의 주의사항

① ANSII 표준에 의하면 명시적 오버로딩과 암시적 오버로딩을 같이 사용하지 마라! 고 하긴 하지만

충돌을 피하게끔 실제로 사용하기도 한다.

ex. void disp(int a = 0, int b = 0, int c = 0);

void disp();

=> error (모호하다)


② 내가 디폴트 인자값을 준 위치부터 뒤는 무조건 초기화해주어야 한다!

void disp(int a, int b = 0, int c = 0);

반응형
저작자표시 비영리 변경금지 (새창열림)
    'programming/cpp' 카테고리의 다른 글
    • this
    • [C++] Class : 절차지향을 넘어 객체지향으로!
    • 성적처리프로그램
    • [C++] setw()
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바