【发布时间】:2010-05-04 16:28:32
【问题描述】:
我有一个类,我想创建一个包含数字实例的数组,特别是一个矩阵类:
class Matrix {
public:
Matrix(int sizeX, int sizeY);
Matrix();
~Matrix();
....//omiting the rest here
private:
int dx, dy;
float **p
void allocArrays() {
assert(dx>0);
assert(dy>0);
p = new float*[dx];
for (int i = 0; i < dx; i++){
p[i] = new float[dy];
}
}
};
Matrix::Matrix(int sizeX=1, int sizeY=1)
: dx(sizeX),dy(sizeY) {
allocArrays();
for (int i = 0; i < dx; i++) {
for (int j = 0; j < dy; j++) {
p[i][j] = 0;
}
}
}
Matrix::Matrix(const Matrix& m) : dx(m.dx), dy(m.dy) {
allocArrays();
for (int i=0; i<dx; ++i) {
for (int j=0; j<dy; ++j) {
p[i][j] = m.p[i][j];
}
}
}
Matrix::~Matrix() {
for (int i = 0; i < dx; i++) {
delete [] p[i];
}
delete [] p;
p = 0;
}
我的主要代码是:
int main()
{
Matrix myArray[2] = { Matrix(6,6)};
return 0;
}
当我使用 g++ 编译时,出现以下错误:
matrixTesting.cc:在函数“int main()”中: matrixTesting.cc:197:错误:重载“Matrix()”的调用不明确 matrixTesting.cc:11:注意:候选人是:Matrix::Matrix() matrixTesting.cc:44: 注意: Matrix::Matrix(int, int) matrixTesting.cc:197:警告:未使用的变量“myArray”我在 google 上进行了一些搜索,但没有找到答案。假设我的构造函数有问题。
【问题讨论】:
标签: c++ arrays matrix compiler-errors