C++ 创建对象数组C++;
我有一个类,我想创建一个包含多个实例的数组,特别是一个矩阵类:C++ 创建对象数组C++;,c++,arrays,matrix,compiler-errors,C++,Arrays,Matrix,Compiler Errors,我有一个类,我想创建一个包含多个实例的数组,特别是一个矩阵类: 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);
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;
}
当我使用g++编译时,会出现以下错误:
matrixTesting.cc: In function ‘int main()’:
matrixTesting.cc:197: error: call of overloaded ‘Matrix()’ is ambiguous
matrixTesting.cc:11: note: candidates are: Matrix::Matrix()
matrixTesting.cc:44: note: Matrix::Matrix(int, int)
matrixTesting.cc:197: warning: unused variable ‘myArray’
matrixTesting.cc:在函数“int main()”中:
matrixTesting.cc:197:错误:重载“Matrix()”的调用不明确
matrixTesting.cc:11:注意:候选项是:Matrix::Matrix()
cc:44:注意:矩阵::矩阵(int,int)
matrixTesting.cc:197:警告:未使用的变量“myArray”
我在谷歌搜索了一下,但没有找到答案。假设我的构造函数有问题 需要
代码>后浮动**p
需要
afterfloat**p
您的矩阵(int,int)构造函数具有所有默认的可调用参数,这将使其与默认构造函数一样可调用。您应该去掉默认构造函数,或者使其至少需要矩阵的一个参数(int,int)。您的矩阵(int,int)构造函数具有所有默认的可调用参数,这将使其与默认构造函数一样可调用。您应该要么去掉默认构造函数,要么使它至少需要一个矩阵(int,int)的参数。< /p> @ SB:不能在C++中转发构造函数。@ SB:不能在C++中转发构造函数。我猜复制和粘贴不是我的强项。在编辑我的帖子时不小心删除了它!我想复制和粘贴不是我的专长。
matrixTesting.cc: In function ‘int main()’:
matrixTesting.cc:197: error: call of overloaded ‘Matrix()’ is ambiguous
matrixTesting.cc:11: note: candidates are: Matrix::Matrix()
matrixTesting.cc:44: note: Matrix::Matrix(int, int)
matrixTesting.cc:197: warning: unused variable ‘myArray’