1
Microsoft Visual Studio를 사용하고 있으며 List 클래스의 제네릭 클래스를 만들었습니다. 기본 생성자에는 문제가 없지만 다른 두 (오버로드 된) 생성자가 오류를 생성하고 있습니다.C2244 템플릿 생성자 오버로드 오류
//List_Array.h
template<typename T>
class List_Array {
private:
int size; ...
T* data;
public:
List_Array<T>::List_Array();
List_Array<T>::List_Array(int);
List_Array<T>::List_Array(const T&, int);
...
};
template<typename T>
List_Array<T>::List_Array() { }
template<typename T>
List_Array<T>::List_Array(int s) {
this->size = s
this->data = new T[s];
}
template<typename T>
List_Array<T>::List_Array(const T& init, int s){
this->size = s;
this->data = new T[s];
for (int i = 0; i < s; i++){
this->data[i] = init;
}
}
은 내가 C2244 'List_Array :: List_Array'를 얻을 : 기존의 선언
어떤 도움에 함수 정의와 일치 할 수없는이 많이 감사합니다!
당신을 감사합니다! 그게 문제를 일으킨다는 것을 몰랐습니다. –
@TylerHughes 비 템플릿 클래스에서도 마찬가지입니다. 따라서 문제는 여기서 템플릿과 오버로드와 관련이 없습니다. – songyuanyao