以下代码告诉我o.days和days from constructor无法解决,有谁知道为什么?
template <class T> struct Array{
int days;
T * M;
};
类的构造函数:
void constr(Array<Expe> &o){
o=new Array;
o->days = days;
o->M = new Array[o->days];
}
编辑(Luchian Grigore):
template <class T> struct Array{
int days;
T * M;
Array( int size ) : days(size), M(new int[size])
{
}
~Array()
{
delete[] M;
}
};
当我尝试在main中初始化一个数组时:
int main(){
//Main function of the program. no pre/ post condition.
Array <Expe> A;
错误:
enter code here
.. \ M.cpp:18:15:错误:没有匹配函数来调用'Array :: Array()'
答案 0 :(得分:4)
Array<Expe> &o
是对Array<Expe>
对象的引用,而不是指针。如果您必须重新初始化它,则语法为。
o = Array<Expe>();
您可以通过.
o.days = days;
o.M = new Array[o.days];
编辑:
我记得昨天的代码。为什么你再次使用适当的构造函数?
template <class T> struct Array{
int days;
T * M;
Array( int size ) : days(size), M(new int[size])
{
}
~Array()
{
delete[] M;
}
};