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 :: Array()'前的'template <>'。我得到的其他錯誤與此特定問題無關:我需要添加'#include '和'using namespace std;',我需要從模板化的'Array'構造函數的_definition_中刪除默認參數(您需要默認參數_declaration_)。有了這些改變,我使用g ++,clang和EDG的前端編譯。 –
感謝您的幫助! – David