오버로딩 : 하나의 함수로 다양한 타입을 처리하는 것.
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 |