관리 메뉴

ComputerVision Jack

[C++프로그래밍 Chapter14] 본문

Programming Language/C++ Programming

[C++프로그래밍 Chapter14]

JackYoon 2020. 2. 5. 10:57
반응형

[클래스 템플릿 특수화]

클래스 템플릿 특수화(Class Template Specialization)

특정 자료형 기반으로 생성된 객체에 대해, 다른 행동양식을 적용하기 위함

템플릿 구성하는 멤버 함수의 일부 또는 전부를 다르게 행동하도록 정의 가능하다.

 

클래스 템플릿 부분 특수화

template <typename T1, typename T2>

class Sample {  };

 

templat <typename T1>

class Sample<T1, int> {  };

하나의 템플릿에 대하여 부분으로 특수화를 진행했다.

[템플릿 인자]

T1, T2 : 템플릿 매개변수 (자료형 : 템플릿 인자)

 

class Sample<int 10>

#템플릿 매개변수에도 변수가 올 수 있다. 

이러한 변수는 해당 템플릿 클래스에서 상수처럼 사용된다.

 

생성자를 통해서 전달하여도 무방하다.

 

template <typename T= int, int len = 7>

템플릿 매개 변수에 디폴트 값 지정도 가능하다.

[템플릿과 static]

템플릿 내의 static 변수는 템플릿 별로 각각 존재한다.

(int 통틀어 1개 double 통틀어 1개..etc)

 

template<typename T>

 

class Sample{

    private:

        static T value;

};

template <typename T>

T Sample<T>:: value = 0;

#template내의 static 변수 초기화

 

반응형

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

[C++프로그래밍 Chapter16]  (0) 2020.02.07
[C++프로그래밍 Chapter15]  (0) 2020.02.06
[C++프로그래밍 Chapter13]  (0) 2020.02.04
[C++프로그래밍 Chapter12]  (0) 2020.02.03
[C++프로그래밍 Chapter11]  (0) 2020.02.01
Comments