C++74 [ C++ ] 클래스 템플릿 ( Class Template ) 앞서 포스팅에 함수 템플릿을 설명하였다. 클래스 템플릿( Class Template )은 함수 템플릿처럼 클래스를 만들어 내는 도구이다. 그럼 점에 대한 클래스 템플릿을 만들어보자. 컴파일러는 24행의 Dot dot1(1, 2); 를 보고 Dot 템플릿 클래스를 생성하고, 25행의 Dot dot2(1.5, 2.5); 를 보고 Dot 템플릿 클래스를 생성한다. * 여기서 주의해야 할 점은, 템플릿 클래스는 템플릿 함수와 다르게 객체를 생성할 때 , 과 같은 자료형 정보가 반드시 표기되어야한다. 클래스 템플릿도 멤버함수를 클래스 외부에 정의하는 것이 가능하다. 위의 코드를 조금 수정해보겠다. 점의 x, y 좌표 값을 더하는 Adder 함수를 추가하였다. 멤버함수를 클래스 외부에 정의할 때도 template를.. 2019. 11. 30. [ C++ ] 함수 템플릿의 특수화(Specialization) 함수 템플릿의 특수화(Specialization)는 특정 자료형에 대해서만 다른 템플릿 함수를 생성할 수 있도록 커스텀해주는 것이다. 지난 템플릿 포스팅에 사용하였던 Adder 함수 템플릿을 기반으로 예제를 보겠다. template const char * Adder(const char * chr1, const char * chr2) { cout 2019. 11. 29. [ C++ ] 둘 이상의 자료형(Type)에 대한 템플릿 선언 이렇게 typename ( 혹은 class )를 템플릿에 선언할 때 원하는 만큼 기입한 후에 문자( T1, T2, T3.. )를 활용하면 된다. 문자는 개발자 마음대로 편하게 사용한다. template 2019. 11. 29. [ C++ ] 함수 템플릿(Function Template)과 템플릿 함수(Template Function) Template. 형판, 형틀 어떤 특정한 모양을 만들기 위해 만들어진 틀을 말한다. 즉, 함수 템플릿(Function Template)은 함수를 만드는 도구를 의미한다. 함수를 만드는 도구는 무엇으로 이뤄져서 만들지는 정하지는 않는다. 그래서 함수 템플릿이 만들어 내는 함수의 자료형도 결정되어 있지 않는다. 예를 보자. int Adder(int n1, int n2) { return n1 + n2; } 위의 함수의 기능은 덧셈이고, 대상 자료형(파라미터와 리턴 값)은 int형 데이터이다. 이러한 함수를 만들어 낼 수 있는 템플릿(Template)은 다음과 같다. T Adder(T n1, T n2) { return n1 + n2; } 위의 함수의 기능은 덧셈이고, 대상 자료형(파라미터와 리턴 값)은 결정되.. 2019. 11. 29. 이전 1 ··· 4 5 6 7 8 9 10 ··· 19 다음