[정리] Generic Copy Constructor


[정리] Generic Copy Constructor

템플릿은 어떤 타입도 함수도 아니다. 단지 컴파일러에 의해서 함수나 타입을 만들어 낼 때 사용될 뿐이고, 컴파일이 끝난 뒤에는 목적 코드에는 생성된 함수나 클래스만 남아 있고 템플릿 자체는 남아있지 않게 된다.

일반함수에서는 type을 지정해 주어야 하지만 멤버함수의 경우에는 지정하지 않아도 컴파일러가 Complex c로, Complex c2;로 해석하기 때문에 문제가 되지 않는다. Complex는 템플릿이고, Complex는 타입이다.

클래스 템플릿의 기본 모양을 살펴보자. 생성자의 디폴트 파라미터는 T r = {} 식으로 쓴다.

함수 인자와 복사 생성자는 Complex 형태로 쓴다. 클래스 선언부에 멤버 함수 선언하고 실제 구현을 할 때 template를 반드시 표기해야 한다. static 변수의 경우 클래스 외부에 선언을 해야 한다.

클래스 템플릿의 멤버 함수 템플릿을 사용할 경우, template template...


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

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