본문 바로가기
[ C++ ]/- C++ 문법정리

C++ 21 [템플릿]

by MRG 2023. 4. 21.
728x90
반응형

 

▣ 데이터타입별로 반환형 매개변수를 다르게 하여 함수오버로딩 가능,

하지만 다른 데이터타입에 대한 걸 계속 만들어야 하기 때문에 가독성이 떨어진다.

 

▣ 템플릿 : 함수와 클래스가 제네릭형으로 동작할 수 있게 해주는

 

▣ 제네릭 : 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술

 

https://ko.wikipedia.org/wiki/%ED%85%9C%ED%94%8C%EB%A6%BF_(C%2B%2B) 

 

템플릿 (C++) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 템플릿(template)은 C++ 프로그래밍 언어의 한 기능으로, 함수와 클래스가 제네릭 형과 동작할 수 있게 도와준다. 함수나 클래스가 개별적으로 다시 작성하지 않고

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%A0%9C%EB%84%A4%EB%A6%AD_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

제네릭 프로그래밍 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. -->

ko.wikipedia.org

 

 

▣ 템플릿함수를 만드는 방법  : template <class 데이터이름> 반환형 함수이름(데이터타입 변수이름)

 

▣ 같은 함수를 사용해도 데이터에 맞는 데이터타입으로 받고 돌려줄 수 있다.

 

 

▣ 템플릿 함수를 만드는 건 코드가 줄어드는 게 아니라 컴파일러가 위에 있는 함수들을 만들어서 진행하는 것과 같다.

 

▣ template <class T, class T2>  : 이렇게 두 개에 다른 데이터타입을 진행할 때 class T2, 콤마로 구분하여 또 다른 템플릿을 만들어서 사용할 수 있다.

 

▣ 숫자뿐만 아니라 문자열 데이터타입도 가능하다.

 

▣ 만약 템플릿 함수와 이름이 동일한 함수가 중복되면, 컴파일러는 중복된 함수를 템플릿 함수보다 먼저 바인딩한다.

 

▣ 클래스템플릿도 가능하다.

 

▣ 클래스 템플릿 만드는 방법 :  template <class T, class T2> class Player 동일하지만 

 

▣ 클래스 템플릿을 사용하려면 :  클래스이름 <데이터타입, 데이터타입> 변수이름(10,20)
Player<int, int> p1(10, 20);
Player<double, double> p2(3.14, 3.14);
Player<string, string> p3("Hi", "C++");

 

처럼 데이터타입을 지정해줘야 한다.

 

728x90
반응형

'[ C++ ] > - C++ 문법정리' 카테고리의 다른 글

C++ 23 [STL, list]  (0) 2023.04.26
C++ 22 [STL, vector]  (0) 2023.04.25
C++ 20 [추상클래스, 순수가상함수]  (0) 2023.04.20
C++ 19 [가상함수, 오버라이딩]  (0) 2023.04.20
C++ 18 [상속, 다중상속, 가상상속]  (0) 2023.04.19

댓글