• 코드:
​x
 
1
#include <iostream>
2
using namespace std;
3
​
4
template <typename T>
5
class Data
6
{
7
private:
8
    T data_;
9
public:
10
    Data(T dt);
11
    T get_data();
12
};
13
​
14
template <> class Data<double>  // double형에 대한 명시적 특수화 
15
{
16
private:
17
    double data_;
18
public:
19
    Data(double dt) { data_ = dt; }
20
    double get_data()
21
    {
22
        cout << "double형 데이터를 출력합니다." << endl;
23
        return data_;
24
    }
25
};
26
​
27
int main(void)
28
{
29
    Data<string> str_data("C++ 수업");
30
    Data<double> double_data(3.14);
31
    
32
    cout << "str_data : " << str_data.get_data() << endl;   
33
    cout << "double_data : " << double_data.get_data() << endl;
34
    return 0;
35
}
36
​
37
template <typename T>
38
Data<T>::Data(T dt)
39
{
40
    data_ = dt;
41
}
42
​
43
template <typename T>
44
T Data<T>::get_data()
45
{
46
    return data_;
47
}
표준입력 & 실행옵션