반응형
BLOG main image


중요한것은 특수화가 되는 두번째 클래스나 세번째 클래스에서의 class a  옆에 오는 < , > 이 자리에 typename T1, 또는 T2 가 오는 위치이며 특수화시 
template<typename T1> 나 template<typename T2> 또는  template<typename T3> 으로 해도 상관은 없다
(단!  T3으로 했을때 틈수화 템플릿 내부에서도 T3으로 맞춰야한다 )


template<typename T1, typename T2>

class a{

public :

a(){

_t1=T1();

_t2=T2();

std::cout<<_t1<<"\t"<<_t2<<std::endl;

}

T1 _t1;

T2 _t2;

};



template<typename T1>

class a <T1,int>

{

public :

a(){

_t1=T1();

_t2=300;

std::cout<<_t1<<"\t"<<_t2<<std::endl;

}

T1 _t1;

int _t2;

};


template<typename T3>

class a <char,T3>

{

public :

a(){

_t1='t';

_t2=T3();

std::cout<<_t1<<"\t"<<_t2<<std::endl;

}

char _t1;

T3 _t2;

};


int main() 

{

a<int,float> ai1;

a<int,int> ai2;

a<char,float> ai3;

//a<char,int> ai4; //error : T1 과 T2 자리에 대한 특수화가 모두다 있음으로

return 0;

}


반응형

+ Recent posts