3
일반적인 질문을하는 것이 싫지만 다음 코드는 템플릿 특수화에 대한 연습입니다. 전문화의 생성자의 구현은하지 템플릿입니다명시 적 템플릿 전문
c:\users\***\documents\visual studio 2010\projects\template array\template array\array.h(49): error C2910: 'Array::{ctor}' : cannot be explicitly specialized
#ifndef ARRAY_H
#define ARRAY_H
template <typename t>`
class Array
{
public:
Array(int);
int getSize()
{
return size;
}
void setSize(int s)
{
size = s;
}
void setArray(int place, t value)
{
myArray[place] = value;
}
t getArray(int place)
{
return myArray[place];
}
private:
int size;
t *myArray;
};
template<typename t>
Array<t>::Array(int s=10)
{
setSize(s);
myArray = new t[getSize()];
}
template<>
class Array<float>
{
public:
Array();
};
template<>
Array<float>::Array()
{
cout<<"Error";
}
#endif
감사
저는 여전히 문제가 있습니다 ... 전체 코드는 어떻게 생겼을까요? – David
' :: Array()'앞의 'template <>'을 제거하십시오. 다른 오류는이 특정 문제와 관련이 없습니다 :'#include '과'using namespace std;'를 추가해야했고 템플릿 화 된'Array' 생성자의 _definition_에서 기본 인수를 제거해야했습니다. _ 선언 _). 이러한 변경 사항으로 g ++, clang 및 EDG의 프론트 엔드를 사용하여 컴파일됩니다. –
도움을 주셔서 감사합니다! – David