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