Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建对象数组C++;_C++_Arrays_Matrix_Compiler Errors - Fatal编程技术网

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
需要
after
float**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’