728x90
300x250
[C++] C++ Template Class 헤더 분리
Template Class를 헤더로 분리하는 방법은. inl 파일로 분리해서 하는 방법이 있다.
대형 3D엔진에서는. inl이란 파일 형식으로 CPP 파일 대신해서 사용한다.
사실 템플릿 함수 자체가 함수를 만들어내는 임무를 수행하고 있다.
일반 함수 원형의 경우,
int hama(int a, int b)
{
a + b
}
이런 꼴이라고 가정하면
템플릿 자료형(int, char 등..) hama(템플릿 자료형 a, 템플릿 자료형 b)
{
a + b;
}
이런 식으로 함수 원형 틀은 그대로 두되 자료형을 자유롭게 바꿔낼 수 있다.
Header라는 영역에서밖에 못 사용하는 것도 아무래도 이러한 이유가 있기 때문에 그러지 않을까 생각한다.
결론은 분리하는 방법은 편법답게 하는 방법이 있는데,
첫 번째로, header를 header 1, header 2로 분리하는 방법
헤더 1이에요
class 헤더1{
}
#include "헤더1.h"
두 번째로, header를 inl으로 맨 하단에 #include를 시키는 방법이 될 수 있다.
나 헤더
class 멍청한클래스{
}
#include "aaa.inl"
/// aaa.inl
구현 하시죠.ㅋㅋㅋ
그냥 실험하는 목적이거나 단순한 거면, 헤더 파일 하나에 몰아넣는 게 정신건강에 이롭지 않나 생각한다.
반응형
'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글
[C++] ifstream으로 파일 존재 유무 파악 (3) | 2014.05.03 |
---|---|
[C++] G++로 다수 Header와 Cpp파일 처리하기(Linux) (4) | 2014.04.29 |
[C++] Swap 구현 (4) | 2012.01.27 |
[C++] Hello World 만나보기 (4) | 2012.01.26 |
[C언어] Const를 사용하는 이유 (6) | 2010.04.23 |