CafeM0ca

[C++]템플릿 본문

Programming/C++

[C++]템플릿

M0ca 2018. 1. 3. 01:50
반응형

템플릿은 편리하며 유용하다. 


사용법

template <typename T> or template <class T> //같은거다. 

T는 자료형이다. T가 int면 모든 T는 int로 치환된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
using namespace std::cout
template <typename T>
void PrintNum(T n){
    cout << n << '\n';
}
 
int main(void){
    PrintNum(1);
    PrintNum(1.0);
    PrintNum('1');
    return 0;
}
cs


위의 코드를 치면서 의문점이 생겼다.

3번째 PrintNum을 인자로 "111"을 주게 되면 과연 T의 자료형은 뭐가 될까?

추론해보면 2가지가 있다.

1. string

2. char형 배열


string이 될 수는 없다! 왜냐하면 #include<string>이 없기 떄문. 따라서 2번이 맞다.(실제로 확인해보니 맞기도 하고)


하나의 프로그래밍 단위에서 동일한 데이터형에 대해 명시적 구체화와 명시적 특수화를 함께 사용하면 안 된다.

+향후 추가



반응형

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

[C++]class static 멤버변수  (0) 2018.01.06
[C++]mutable  (0) 2018.01.04
[C++] 런타임 과정에서의 입력 값  (0) 2017.12.02
[C++]inline  (0) 2017.11.29
[C++]함수 포인터  (0) 2017.11.29
Comments