template
: 타입을 가변적으로 사용할 수 있도록 해준다.
타입을 여러개 받아서 사용할 수도 있다. 제한이 없다.
형태 : template <typename 이름, ...> / template <class 이름, ...>
템플릿은 클래스나 함수에서 사용할 수 있다.
ex)
아래처럼 해주게 되면 T가 변수 타입이 된다.
템플릿의 타입은 컴파일 시간에 정의가 된다.
이 함수를 호출하면서 타입이 정해지기 때문이다.
함수를 호출하는 구문을 컴파일러가 분석할 때 어떤 타입인지 정해지게 된다.
template <typename T>
T Sum(T a, T b)
{
return a+ b;
}
int main()
{
// 아래처럼 명시적으로 타입을 지정해줄 수 있다.
cout << Sum<int>(10, 20) << endl;
// 타입을 지정하지 않을 경우 인자로 들어간 타입이 된다.
cout << Sum(40, 50) << endl;
}
template 타입을 friend 지정할 때 template을 지정해주어야 한다.
함수 인자로
const T& data
이렇게 넣어주면 복사해서 사용하기 보다 참조만해서 사용할 수 있게 하고 레퍼런스는 값을 변경할 수 있는데 const로 값을 변경하지 못하게 막아주는 것이다.
'프로그래밍 > C++' 카테고리의 다른 글
STL 소개, 컨테이너, 반복자 (0) | 2019.06.13 |
---|---|
함수 포인터 (0) | 2019.06.12 |
const와 static (0) | 2019.06.04 |
복사생성자 (0) | 2019.06.03 |
Reference (참조자) (0) | 2019.06.01 |