class TemplateData{
private:
vector<T> data;
int dd = 1;
public:
void Add(T arg){data.push_back(arg);}
};
void q127(){
TemplateData<int> data_int;
data_int.Add(30);
}
TemplateData<int> data_int; 에서 int인걸 명시한건데
int가 클래스 안에 들어있는 vector에 들어가는 자료형인걸 컴파일러가 어떻게 안거죠?
template <typename T> 이거랑 어떻게 다른건지 뭘 하고자 하는건지 사실 잘 모르겠어요,,.,.
위에 정의에서 탬플릿 T 가 내부 클래스의 vecto 명시적으로 전달되서 가능한거임
<T> - dc Cpp
꺽쇠 댓글애서 삭제되네 알아서 해석해라
클래스안에서 template를 쓰면 이 클래스 선언할때마다 항상 명시적 전달을 해줘야하는건가요?
class와 typename은 차이점이 없습니다. 컴파일러가 그런 자료형인걸 아는 건 T가 하나의 변수처럼 선언됬기 때문이죠. T를 하나의 자료형 변수로 쓰는 거죠. 이해되셨나요?