(작성중)
'프로그래밍 공부 정리 > C++' 카테고리의 다른 글
template[2] (0) | 2013.12.13 |
---|---|
template (0) | 2013.12.13 |
(작성중)
template[2] (0) | 2013.12.13 |
---|---|
template (0) | 2013.12.13 |
부가적인 상황들
1. 서로 다른 매개변수를 동시 받을 경우(function with two generic types) int int를 받거나 char char를 받는 것이 아닌, int char를 받을 때는 어떻게 되나 궁금하던 찬라, 바로 다음 예시에 나왔다. template class를 그 수만큼 선언해주고 쓰면된다. 아래 소스코드 참조
책에 나와 있는 예시에서는 10L을 넣었는데, 왜 10만 출력되는지..
그건 잘 모르겠다 xcode로 컴파일 했을때만 10이라고 나오는건지,
원래 저자의 의도가 안되는걸 보여주려고 했던건지..
2. 한개의 타입에 대해서만 다른 수행을 하고 싶을 때(explicitly overloading a generic function)
오버로딩을 혼합해준다.
3. 단순 template함수 overloading
4. generic class
protected 와 private의 차이 (0) | 2014.01.15 |
---|---|
template (0) | 2013.12.13 |
-왜 필요한가?
두개의 값을 받아서 서로 바꿔주는 서브프로그램 swap을 만든다고 가정하자.
이런 함수를 짜놨는데 double 도 입력받아서 그대로 처리했으면 좋겠고,
char도 처리했으면 좋겠다.
함수 내부 내용은 똑같을테니까 또 짜기가 귀찮다.
그럴때 template을 사용한다
템플릿 선언하여 생성한 class X는 모든 타입을 받을 수 있는 그릇이 된 것이다.
그래서 모든 parameter를 받을 수 있게 된 것이다.
그럼 의문이 생긴다.
-overloading과의 차이점은 뭘까?
template을 쓰면 받아들이는 parameter는 타입에 무관하게 아무거나 받을 수 있지만
함수 내부 코드는 같은 것이 적용이 된다.
반면에, overloading을 이용하면 함수 body를 따로 선언하는 거기 때문에
받아들이는 타입에 따라서 다른 수행을 하도록 조작하는 것이 충분히 가능하다.
겉으로 보면 같은 기능을 하는 것 처럼 보이지만
template은 방(서브프로그램)으로 들어가는 문이 여러개 인것이고
overloading은 안방(int받아서 계산하는 함수)으로 가든 부엌(char 계산하는 함수)으로 가든
한개의 문을 열고 들어가야 한다는 것으로 이해하면 될 것 같다.
protected 와 private의 차이 (0) | 2014.01.15 |
---|---|
template[2] (0) | 2013.12.13 |