ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++ 문법] Template
    프로그래밍/C++ 2019. 4. 2. 21:38

    C++ 문법

     

    Template

     

      개념부분은 내용을 조금씩 추가 할 예정입니다.

     

     

    문법

     

    template <class T>   or  template <typename T>

             1                 2     3

     

     

    1 : 선언해주는 이름

     

    2 : class, typename 두 가지의 경우가 있는데, 아무거나 사용해도 좋다. 하지만 class 의 경우 이미 정해진 이름이 있기 때문에 보통 typename 을 사용한다.

     

    3 : 여기에는 편하게 사용할 문자를 사용하는데, 역시 보통 T 를 사용합니다.

     

     

     

    코드 예시1)

    : 같은 자료형인 두개의 인수를 받는 경우

     

    1
    2
    3
    4
    5
    6
    template <typename T>
     
    T add(T a, T b)
    {
        return a + b;
    }
    cs

     

    다시 return 하는 경우 당연히 함수도 T 로 선언해줘야 겠죠ㅎㅎ

     

     

    코드 예시2)

    : 다른 자료형인 두개의 인수를 받는 경우

     

     

    1
    2
    3
    4
    5
    6
    7
    template <class T1, class T2>
     
    void print(T1 a, T2 b)
    {
        cout << "T1 : " << a << endl;
        cout << "T2 : " << b << endl;
    }
    cs

     

    지금은 return 값이 필요 없으므로 void로 선언됬습니다.

     

     

    코드 예시3)

    : T 자료형을 출력하거나 사용할때는 꼭 자료형을 표시해줘야 합니다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    template <class T>
     
    T add(T a, T b)
    {
        return a + b;
    }
     
    int main() {
        
        int a = 1;
        int b = 2;
     
        float f1 = 12.0f;
        float f2 = 13.1f;
     
        string s1 = "해도해도 ";
        string s2 = "끝이 없다.";
     
        cout << "int 합 :" << add<int>(a, b) << endl;
        cout << "float 합 :"<< add<float>(f1,f2) << endl;
        cout << "string 합 : "<< add<string>(s1,s2) << endl;
     
     
        return 0;
    }
    cs

     

     

     

    '프로그래밍 > C++' 카테고리의 다른 글

    [C/C++] C++ STL Stack 기본 사용법 및 예제  (0) 2019.08.22
    [C/C++] C ++ STL Queue 기본 사용법 및 예제  (0) 2019.08.21
    [C++ 문법] 구조체  (0) 2019.04.04
    [C++ 문법] 참조자형  (0) 2019.04.04
    [C++ 문법] Nullptr  (0) 2019.04.03

    댓글

Designed by Tistory.