C++ 将数组声明为函数



我在数组方面遇到了一些问题,因为我有我的 .h 和 .cpp 文件,所以我是否按照我们通常声明函数的规范来声明它们?

点二分之一。

class PointTwoD
{
    private:
        int xcord,ycord;
        float civIndex;
        LocationData locationdata;
    public:
            PointTwoD();
            PointTwoD(int, int, string, int, int, float, float, float);
        //set/mutator function
        void setxcord(int);
        void setycord(int);
        //get/accessor function
        int getxcord();
        int getycord();
        void storedata(int, int, float);
};

点二.cpp

//declaring array
void PointTwoD::storedata(int xord[], int yord[], float civ[])
{
    int i=0;
    //int size = sizeof(xord)/sizeof(xord[0]);
    int size = 100;
    for(i=0;i<100;i++)
    {
        cout << "key in num for xord: " << endl;
        xord[i] = xcord;
        cout << "key in value for yord: " << endl;
        xord[i] = ycord;
        cout << "key in value for civ: " << endl;
        civ[i] = locationdata.getCivIndex();
    };
}
int main()
{
    PointTwoD pointtwod;
    pointtwod.storedata(xord[], yord[], civ[]);
}

当我编译时,我得到的错误消息是当我在我的 PointTwoD.h 文件中放入 int xord[]; 时:

PointTwoDImp.cpp:99:6: error: prototype for 'void PointTwoD::storedata(int*,int*,float*) does not match any in class 'PointTwoD'
PointTwoD.h:48:8: error: candidate is: void PointTwoD::storedata(int, int, float)
PointTwoDImp.cpp: 135:22: error: 'xord' was not declared in this scope
PointTwoDImp.cpp: 135:27: expected primary-expression before ']' token
PointTwoDImp.cpp: 135:30: error: 'yord' was not declared in this scope
PointTwoDImp.cpp: 135:35: expected primary-expression before ']' token
PointTwoDImp.cpp: 135:38: error: 'civ' was not declared in this scope
PointTwoDImp.cpp: 135:42: expected primary-expression before ']' token
PointTwoDImp.cpp:99:6: error: prototype for 'void PointTwoD::storedata(int*,int*,float*) does not match any in class 'PointTwoD'

这意味着该函数与您在标头中声明的原型不匹配,即:

void storedata(int, int, float);

声明应为:

void storedata(int*, int*, float*);

或:

void storedata(int xord[], int yord[], float civ[]);

其余的错误是因为您没有在 main 中声明xord[], yord[], or civ[],并且将它们传递给函数。

因此,您需要在将三个数组传递给函数之前在 main 中声明它们。

相关内容

  • 没有找到相关文章

最新更新