struct Mystruct
{
int x;
int y;
Mystruct(int x, int y);
}
------------------------
class Myclass
{
Mystruct** p;
Myclass(int n);
}
------------------------
Myclass::Myclass(int n)
{
this->p = new Mystruct*[n];
for ( int i = 0; i < n; i++ )
this->p[i] = new Mystruct[n];
}
这将无法工作。我知道问题出在某个地方,默认构造函数不可用,但我不知道如何继续前进。
你想
Myclass::Myclass(int n)
{
this->p = new Mystruct*[n];
for ( int i = 0; i < n; i++ )
this->p[i] = new Mystruct[n];
}
因为 Mystruct** p;
你还需要保存维度,并且要添加一个destructor,很可能构造函数必须是public的。
就像在一句话中说的那样,为了能够分配你的数组中的 肌理 需要一个不带参数的构造函数