C++

C++ 6주차 스터디 과제 1 : Template

kchabin 2022. 6. 23. 10:49

오버로딩 : 하나의 함수로 다양한 타입을 처리하는 것. 

Ex) add()의 매개변수를 int형과 double형으로 사용. 

 

템플릿 : 함수나 클래스를 일반화하기 위한 도구

 

템플릿 선언

1) template <class T>

2) template <typename T> -> 권장되는 방식

*T : 제네릭 타입. 사용자가 원하는 이름으로 정해줌. 

 

구체화 : 사용자가 원하는대로 정해둔 typename이 넣어주는 값의 자료형에 따라서 함수 자료형이 int, double 등으로 변함.

위 이미지에서처럼 typename SWING으로 정해뒀던 void myswap 함수가 main에서는 void myswap(int &a, int &b)로 구체화 및 참조에 의한 호출이 발생한다. 

한 번 템플릿을 선언하고나서 템플릿을 계속 이용할 수 있을 줄 알았는데, 그러진 못하고, 새로 template <typename A> 이런식으로 템플릿을 만들어줘야 했다. 

출력 결과

'C++' 카테고리의 다른 글

껄껄껄 7주차 스터디  (0) 2022.11.05
C++ 6주차 과제 2 : 캐릭터 관리 프로그램  (0) 2022.06.28
C++ 스터디 5주차 과제 2  (0) 2022.05.24
C++ 스터디 5주차 과제 1  (0) 2022.05.19
C++ 스터디 4주차 과제2  (0) 2022.05.17