A. 템플릿 문법
1. 템플릿 문법
a. 템플릿이란?
🌟 함수나 클래스를 작성할 때 특정한 데이터 타입에 의존하지 않고 유연하게 작성할 수 있게 하는 것
- 제네릭 프로그래밍을 지원하기 위한 강력한 언어 특징
- 코드의 재사용성을 높이고 일반화된 알고리즘을 작성하는데 도움
- 👉 런타임 X 컴파일할때 모든것이 다 결정되고 사용됨
- 사용하지 않으면 컴파일시 존재조차 만들어지지 않음 = 오류나지 않음
템플릿은 두 가지 주요 형태로 사용
- 함수 템플릿
- 클래스 템플릿
C#의 제네릭이랑 비슷하지만 기능이 더 많고 어렵다 (거의 흑마법)
b. 함수 템플릿
1) 정의
🌟 함수의 데이터 타입을 일반화하여 함수를 선언하고 정의
다양한 데이터 타입에 대해 동일한 코드를 재사용할 수 있게 함
📘 문법 예제
template<typename T>
//T : template의 약어로, 다른 이름으로 변경 가능하나 대부분 이렇게 사용
👉 함수 위에서 조커카드처럼 사용가능
2) 여러개 사용하기
동일 함수에서 여러개로 사용할 수 있게 해주는게 아니라
따로따로 작성한 것 처럼 컴파일러에서 별도의 함수를 파줌!
3) 별도 템플릿 작성하기
위 경우를 사용하다가 int 값만 따로 받는 함수를 사용하고 싶다면
c. 클래스 템플릿
1) 정의
🌟 클래스의 데이터 멤버나 멤버 함수의 데이터 타입을 일반화하여 클래스를 선언하고 정의
다양한 데이터 타입에 대해 동일한 클래스를 재사용할 수 있게 함
>> 저번에 공부한 Vector 같이 int로 사용한 pos값을 여러개 사용할 수 있게 함
📘 문법 예제
template<typename T>
class Stack {
private:
T elements[100];
int top;
public:
void push(T element);
T pop();
};
2) 다른 매개변수 사용
3) 초기값 세팅
🧡 class T?
사실 typename 키워드 대신 class 사용해도 동일
하지만 대부분 typename 사용하기에 typename 사용하는게 좋다!class 사용해도 동일함...!
4) 별도 템플릿 작성하기
함수 템플릿과 마찬가지로 클래스에서도 이렇게 따로 작성할 수 있음
d. 미로 코드 수정하기
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -
어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프
www.inflearn.com
'프로그래밍 언어 > C++' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] C++11 (Modern C++) 1 : auto (68강) (0) | 2024.02.22 |
---|---|
STL 기초 (0) | 2024.02.21 |
[게임 프로그래머 입문 올인원] 동적할당과 캐스팅 : 버그 유형과 디버깅 연습/답안 (43, 44강) (2) | 2023.10.05 |
[게임 프로그래머 입문 올인원] 동적할당과 캐스팅 : 전방 선언 (40강) (0) | 2023.09.15 |
[게임 프로그래머 입문 올인원] 동적할당과 캐스팅 : C 스타일 캐스팅 과 캐스팅 4총사(37강, 42강) (1) | 2023.09.14 |