-template이란? 
sub program이 아무 타입의 parameter라도 받아올 수 있게 만들어주는 c++의 기능이다. 이런 개념을 일반적으로 "generic -" 이라는 말을 붙여서 사용한다. generic function, generic class 등... 



-왜 필요한가? 

 두개의 값을 받아서 서로 바꿔주는 서브프로그램 swap을 만든다고 가정하자. 


이런 함수를 짜놨는데  double 도 입력받아서 그대로 처리했으면 좋겠고,
char도 처리했으면 좋겠다. 
함수 내부 내용은 똑같을테니까 또 짜기가 귀찮다. 
그럴때 template을 사용한다


템플릿 선언하여 생성한 class X는 모든 타입을 받을 수 있는 그릇이 된 것이다.
그래서 모든 parameter를 받을 수 있게 된 것이다.

그럼 의문이 생긴다. 
-overloading과의 차이점은 뭘까?

template을 쓰면 받아들이는 parameter는 타입에 무관하게 아무거나 받을 수 있지만
함수 내부 코드는 같은 것이 적용이 된다.
반면에, overloading을 이용하면 함수 body를 따로 선언하는 거기 때문에
받아들이는 타입에 따라서 다른 수행을 하도록 조작하는 것이 충분히 가능하다.
겉으로 보면 같은 기능을 하는 것 처럼 보이지만
template은 방(서브프로그램)으로 들어가는 문이 여러개 인것이고
overloading은 안방(int받아서 계산하는 함수)으로 가든 부엌(char 계산하는 함수)으로 가든 
한개의 문을 열고 들어가야 한다는 것으로 이해하면 될 것 같다.


'프로그래밍 공부 정리 > C++' 카테고리의 다른 글

protected 와 private의 차이  (0) 2014.01.15
template[2]  (0) 2013.12.13
Posted by jeff제프
,

Posted by jeff제프
,

한문장1

한마디 교훈 2013. 12. 12. 20:01


한문장 [1] "죽이는 하나님이 아니고 살리는 하나님이다"



고등학교 음악 선생님이자 나의 동아리 선생님이셨던 분이 어느날 하신 말씀.

뭔가 앞뒤가 안 맞고 극단적인 말같긴 하지만 

무슨 말을 하고 싶으셨던 건지 너무 잘 와닿아서 오랫동안 기억에 남는게 아닌가 싶다.


'왜 나에게 이런 시련이..'라고 생각할 때, 

하나님이 내 편이라는 사실을 인지하는 것만으로도 큰 위안이 되었다. 

졸업한지 4년이 지났지만,


힘든 순간마다 기억난다.


'한마디 교훈' 카테고리의 다른 글

[3]  (0) 2013.12.14
[2]  (0) 2013.12.13
한마디 교훈  (0) 2013.12.12
Posted by jeff제프
,