我应该使用“field01”类。 “field01”具有大小为int 7的数组的输入和输出函数。在main函数中,有一个默认的field01,我似乎找不到找到使我的field01函数与默认初始化一致的方法。 (似乎我无法让field01作为数组读取)我是新手,所以请对初学者和潜在的错误代码耐心等待!

我在该类中形成了一个构造函数,如.... field01(){}; .... field01(int p [7]){}; ..... field01(p){}; ... field01(int p []){}都具有“int p [7]”类的私有(private)成员

class field01{public: field01(){};//...input, output and overload+ functions here
private:
int p[7];};

...
int main(void)
{field01 a(0,1,2,3,4,5,6);
return 0;}

该代码将无法编译。我收到一条错误消息“没有匹配的构造函数,无法初始化'field01'”,该消息点亮了主窗口中的field01声明。

最佳答案

这是因为您没有具有7 int的构造函数。您只有1个构造函数,其参数为0。

如果要让类接受这样的7个参数,则需要为其创建一个特殊的构造函数。如下所示:

class field01 {
    public:
    field01(int i1,int i2,int i3, int i4, int i5, int i6, int i7) {
        p[0] = i1;
        p[1] = i2;
        p[2] = i3;
        p[3] = i4;
        p[4] = i5;
        p[5] = i6;
        p[6] = i7;
    }
};

09-25 20:42