C++ 错误:对‘;的调用没有匹配函数;建造商&x2019;注:候选人包括: #包括 #包括 阶级交叉 { 公众: 常数int x; const int y; 交叉(整数X,整数Y):X(X),Y(Y) { } ~CROSS(){} }; 交叉**生成交叉数组(int M,int N) { 十字架**十字架; 交叉=新交叉*[M]; 对于(int i=0;i

C++ 错误:对‘;的调用没有匹配函数;建造商&x2019;注:候选人包括: #包括 #包括 阶级交叉 { 公众: 常数int x; const int y; 交叉(整数X,整数Y):X(X),Y(Y) { } ~CROSS(){} }; 交叉**生成交叉数组(int M,int N) { 十字架**十字架; 交叉=新交叉*[M]; 对于(int i=0;i,c++,multidimensional-array,C++,Multidimensional Array,,如果要使用动态分配的数组,则必须提供默认构造函数 #include<stdio.h> #include<stdlib.h> class CROSS { public: const int x; const int y; CROSS(int X, int Y): x(X), y(Y) { } ~CROSS() {} }; CROSS** Generate_Cross_Array(int M, int N) {

,如果要使用动态分配的数组,则必须提供默认构造函数

#include<stdio.h>
#include<stdlib.h>

class CROSS
{
    public:
    const int x;
    const int y;

    CROSS(int X, int Y): x(X), y(Y)
    {
    }

    ~CROSS() {}
};

CROSS** Generate_Cross_Array(int M, int N)
{
    CROSS** cross;
    cross = new CROSS*[M];
    for(int i=0; i<M; ++i)
    {
        cross[i] = new CROSS[N];
        for(int j=0; j<N; ++j)
        {
            CROSS cross[i][j](i, j);
            printf("%d, %d\n",cross[i][j].x, cross[i][j].y);
        }
    }
     return cross;
}

如果这不是一个选项,考虑使用一个标准的库容器,IE <代码> STD::vector ./P> + 1,只是指出问题是在<代码>交叉[i] =新的十字架[n];< /代码>行,其中编译器不能构建一个没有缺省CtoR的对象数组。;另一方面也可以,因为您将指针分配到

交叉
,而不调用任何构造函数。非常感谢你们两位。我想我必须实现一些其他方法来解决这个问题。
CROSS(int X = 0, int Y = 0): x(X), y(Y)