반응형

클래스 템플릿 2

클래스 템플릿에 대한 간단한 정리

앞서 템플릿에 대한 개념을 설명하면서 함수 템플릿에 대해 살펴보았습니다. 2017/04/18 - [프로그래밍/cpp] - C++ 템플릿(template) 이해하기 이번에는 클래스 템플릿에 대해 살펴볼 것인데 함수 템플릿과의 차이점에 초점을 맞춰서 이해할 필요가 있습니다. 클래스 템플릿을 선언하는 방법은 함수 템플릿의 선언과 차이가 없지만 함수와 클래스의 구조적인 차이점으로 인해 클래스 템플릿을 사용할 때 반드시 타입을 명시해 줘야 합니다. 명시해주는 방법은 함수 템플릿의 구체화 지정과 동일하므로 쉽게 이해할 수 있습니다. 우선 템플릿 선언을 하는 예제를 살펴보겠습니다. 클래스 템플릿의 선언 클래스 템플릿 선언에 대한 내용은 굳이 길게 설명할 필요없습니다. 함수 템플릿을 만드는 방식과 동일하기 때문입니다...

프로그래밍/cpp 2017.04.29

비타입 인수,디폴트 템플릿 인수,특수화 (클래스,함수 템플릿) c++

비타입 인수(Nontype Argument)는 타입이 아닌 실제 값을 말합니다. 실제 값은 변수가 아닌 상수를 말합니다. 대표적인 예로 배열객체를 만드는 클래스를 클래스 템플릿으로 만들어 보겠습니다. 멤버변수로 배열이 선언되었지만, 초기화가 안되 있습니다. 배열의 특성상 구체화(컴파일시)와 동시에 초기화가 되어야 하기 때문에 N값에 상수가 필요합니다. 템플릿을 이용해서 객체 생성시로 초기화를 미룰 수 있습니다. 이렇게 하면 클래스로 원하는 타입과 크기의 배열 객체를 생성할 수 있습니다. 템플릿을 사용하지 않고서는 클래스로 원하는 객체를 만드는 방법은 동적할당을 이용하는 방법일 겁니다. 동적할당을 사용하면 실행중 언제라도 배열을 크기도 바꿀 수 있고 실행시간 중에 생성할 수도 있습니다. 하지만 동적할당은 ..

프로그래밍/cpp 2014.06.18
반응형