using namespace std;
template<class T, int SIZE>
class Array
{
private:
T array[SIZE];
public:
T& operator[](int nIndex)
{
return array[nIndex];
}
};
template<class T1, class T2>
class Pairs
{
private:
T1 first;
T2 second; T2 third;
public:
Pairs(const T1& t1, const T2& t2) :
first(t1), second(t2)
{}
};
int main(int argc, char** argv)
{
Array<Pairs<int, int>, 40> sample;
sample[0] = Pairs <int, int> (40, 20);
return 0;
}
我是C ++的新手。刚试了一些模板并获得了:
error: ARRAY<T,SIZE>: no appropriate default constructor available.
我该如何解决这个问题?
答案 0 :(得分:2)
您的班级Pairs
没有默认构造函数。 Array< Pairs<int, int>, 40>
的一个实例需要构建40个Pairs
个实例 - 但是没有构造函数可以用它来构建。
如果您希望Pairs
在Array
中可用,请为其指定默认构造函数(不带参数的构造函数)。