07.19

신승빈·2022년 7월 20일
0

KGCA 수업

목록 보기
10/128

Template

함수 템플릿

template <typaname T>
void swap(T &a, T &b)
{ ... }
int main()
{
	int a = 1;
    int b = 2;
	swap(a, b);
}

함수 템플릿은 타입 지정이 자동으로 수행됨.

템플릿 특수화
template<typename A, typename B, typename C>
void func(A aVal, B bVal, C cVal)
{
    cout << &aVal << endl;
    cout << &bVal << endl;
    cout << &cVal << endl;
}
template<typename B>
void func(int aVal, B bVal, char cVal)
{
    cout << aVal << endl;
    cout << &bVal << endl;
    cout << cVal << endl;
}

클래스 템플릿

template<typename T>
class Test
{
private:
    T val;
    
public:
    void func1()
    { ... }
    void func2();
};

template<typename T>
void Test<T>::func2()
{ ... }

템플릿은 선언과 정의를 분리하지 않는 것이 좋음.

참조 : https://woo-dev.tistory.com/38

참조 : https://thrillfighter.tistory.com/408

profile
이상을 길잡이 삼아 로망을 추구합니다.

0개의 댓글