[정리] Generic Copy Constructor


[정리] Generic Copy Constructor

템플릿은 어떤 타입도 함수도 아니다. 단지 컴파일러에 의해서 함수나 타입을 만들어 낼 때 사용될 뿐이고, 컴파일이 끝난 뒤에는 목적 코드에는 생성된 함수나 클래스만 남아 있고 템플릿 자체는 남아있지 않게 된다. 일반함수에서는 type을 지정해 주어야 하지만 멤버함수의 경우에는 지정하지 않아도 컴파일러가 Complex<T> c로, Complex<T> c2;로 해석하기 때문에 문제가 되지 않는다. Complex는 템플릿이고, Complex<T>는 타입이다. 클래스 템플릿의 기본 모양을 살펴보자. 생성자의 디폴트 파라미터는 T r = {} 식으로 쓴다. 함수 인자와 복사 생성자는 Complex<T> 형태로 쓴다. 클래스 선언부에 멤버 함수 선언하고 실제 구현을 할 때 template<typename T>를 반드시 표기해야 한다. static 변수의 경우 클래스 외부에 선언을 해야 한다. 클래스 템플릿의 멤버 함수 템플릿을 사용할 경우, template<typename T> template...


#compiler #컴파일러 #복사생성자 #대입연산자 #typename #template #generic #copy #constructor #템플릿

원문링크 : [정리] Generic Copy Constructor