템플릿 함수

2024. 12. 24. 20:38·내배캠/C++

매개변수의 타입이 다르거나 개수가 다르다면 함수의 이름이 같아도 C++에서는 함수 오버로딩으로 사용할 수 있다.

 

더보기
#include <iostream>

using namespace std;

int add(int x, int y)
{
    return x + y;
}

double add(double x, double y)
{
    return x + y;
}

string add(string x, string y)
{
    return x + y;
}


int main() 
{
    cout << add(3, 5) << endl;
    cout << add(2.5, 4.3) << endl;
    cout << add("Hello ", "world!") << endl;

    return 0;
}

 

 

하지만 이렇게 되면 각 타입에 맞는, 많은 함수를 만들어야해서 시간적 비용이 발생한다.

그래서 템플릿 함수를 만들어서 사용하면 일반화된 코드를 작성할 수 있게 된다.

template <typename T>
T add(T x, T y)
{
    return x + y;
}


int main() {
    // 정수 더하기
    cout << "3 + 5 = " << add(3, 5) << endl;

    // 실수 더하기
    cout << "2.5 + 4.3 = " << add(2.5, 4.3) << endl;

    // 문자열 합치기
    cout << "\"Hello, \" + \"World!\" = " << add(string("Hello, "), string("World!")) << endl;

    return 0;
}
  • 함수의 데이터 타입을 고정하지 않고, 호출 시점에 전달된 인수에 따라 데이터 타입을 결정할 수 있다.
  • 재사용성을 높이고 중복된 코드를 줄일 수 있다.
  • 컴파일 타임에 타입 검사를 수행하므로, 타입 안정성을 보장한다.

'내배캠 > C++' 카테고리의 다른 글

std::cin::fail / std::cin::clear / std::cin::ignore  (0) 2024.12.26
std::transform  (1) 2024.12.26
스마트 포인터  (0) 2024.12.24
Stack / Static / Heap  (2) 2024.12.24
가상 함수와 추상 클래스  (0) 2024.12.24
'내배캠/C++' 카테고리의 다른 글
  • std::cin::fail / std::cin::clear / std::cin::ignore
  • std::transform
  • 스마트 포인터
  • Stack / Static / Heap
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    템플릿 함수
    상단으로

    티스토리툴바

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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