[C++] 함수 중첩과 디폴트 인자

2023. 1. 2. 22:31·C++
목차
  1. 1. 함수 중첩(function overloading)
  2. 1.1 함수 중첩 예
  3. 1.2 함수 중첩을 하는 2가지 경우
  4. 2. 생성자 중첩
  5. 2.1 생성자 중첩 예
  6. 3. 디폴트 인자
  7. 3.1 디폴트 인자 예
728x90
반응형

1. 함수 중첩(function overloading)

  • 함수 오버로딩이라고도 부름
  • 다형성을 구현하는 한가지 방법이다.
  • C에서는 기능이 같아도 처리하는 자료형에 따라 다른 이름의 함수를 사용한다.
  • C++에서는 하나의 함수 이름을 중첩해서 사용 가능하다.
  • 하나의 함수명을 여러 개의 유사 목적으로 사용할 수 있다.

1.1 함수 중첩 예

  • add(10 ,20)에 의해서는 첫 번째 add()함수가 불려지고, add(10.5,20.3)에 의해서는 두 번째 add() 함수가 불려집니다.
  • 즉, 컴파일러가 실매개변수의 입력 자료형에 따라서 자동적으로 해당 함수를 연결해줍니다.

 

1.2 함수 중첩을 하는 2가지 경우

1. 매개변수의 형이 다른 경우

2. 매개변수의 개수가 다른 경우


 

2. 생성자 중첩

  • 클래스의 멤버함수도 중첩이 가능하고, 생성자도 중첩이 가능하다.
  • 하지만 소멸자는 중첩이 불가능하다.
  • 생성자 함수도 매개변수를 가질 수 있기 때문에 매개변수의 수나 자료형에 따라 여러 개의 생성자 함수를 중첩할 수 있다.
  • 생성자 함수를 중첩시키는 것은 객체에 초기값을 다양하게 주는 선택 기회를 제공하는 것이다.

2.1 생성자 중첩 예


3. 디폴트 인자

  • 디폴트 매개변수 (default parameter, default argument)
  • int add(int, int); // 매개변수 2개
  • C++에서는 함수를 호출할 때 별도의 매개변수를 전달하지 않아도 기본적인 값을 전달하도록 함수 원형을 선언할 때 디폴트 값을 지정할 수 있다.
  • 해당 매개변수가 주어지지  않으면 디폴트 인자 값이 할당된다.
  • 모든 매개변수에 디폴트 값을 줄 필요는 없으며, 필요한 곳에만 준다.
  • 디폴트 매개변수의 사용은 함수 중첩의 축약형이다.
  • 디폴트 매개변수를 갖는 함수를 만들 때, main()함수 전에 함수 선언을 하면 선언부에만 디폴트 인자를 지정해야 한다.
  • int add(int a=1, int b=2); // 선언부에 디폴트 인자 작성
  • 디폴트 매개변수를 정의하기 시작하면 그 다음(오른쪽)의 매개변수들은 모두 디폴트 매개변수를 가져야 한다.

 

3.1 디폴트 인자 예

  • add()로 호출할 경우에는 i=1, j=2
  • add(10)으로 호출할 경우에는 i=10, j=2
  • add(10,20)으로 호출하면 i=10, j=20
  • 즉, 형식매개변수보다 적은 실매개변수로 호출할 경우 왼쪽의 매개변수부터 값을 할당받는다. 

728x90
반응형
저작자표시 (새창열림)

'C++' 카테고리의 다른 글

[C++] 템플릿, 포인터와 주소, 범위 지정 연산자 ::  (2) 2023.01.04
[C++] 객체와 멤버, 변수와 배열  (0) 2022.12.28
[C++] const, const 예제  (0) 2022.12.26
[C++] 함수, 기억클래스, 구조체  (1) 2022.09.22
[C++] 매개변수, 인자, 리턴값, 함수, 여러 예제  (0) 2022.09.18
  1. 1. 함수 중첩(function overloading)
  2. 1.1 함수 중첩 예
  3. 1.2 함수 중첩을 하는 2가지 경우
  4. 2. 생성자 중첩
  5. 2.1 생성자 중첩 예
  6. 3. 디폴트 인자
  7. 3.1 디폴트 인자 예
'C++' 카테고리의 다른 글
  • [C++] 템플릿, 포인터와 주소, 범위 지정 연산자 ::
  • [C++] 객체와 멤버, 변수와 배열
  • [C++] const, const 예제
  • [C++] 함수, 기억클래스, 구조체
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (205) N
      • Apple (123) N
        • iOS (22)
        • visionOS (4)
        • Swift (66)
        • UIKit (2)
        • SwiftUI (23) N
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    변수
    클래스
    자바스크립트
    UIKit
    스위프트
    프로퍼티 래퍼
    연산자
    디자인패턴
    운영체제
    Initializers
    함수
    Xcode
    swiftUI
    ios
    옵셔널
    프로세스
    제어문
    visionOS
    배열
    오블완
    Vision Pro
    비동기
    네트워크
    Optional
    이니셜라이저
    SWIFT
    코딩테스트
    combine
    메서드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[C++] 함수 중첩과 디폴트 인자

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.