类型myObj和myObj *不兼容

时间:2016-04-27 14:44:10

标签: c++ arrays pointers object

class boundaryPt{
public:
friend class KCurvature;
int x;
int y;

boundaryPt(int x, int y){
    this->x = x;
    this->y = y;
}
boundaryPt(){}

};



class KCurvature{
public:
    boundaryPt* boundaryPtAry;
    int numPts;
    ifstream input;

KCurvature(char* inFile){
    input.open(inFile);
    input >> numPts;
    boundaryPtAry = new boundaryPt[numPts];
}

void loadData(char* inFile){
    input.open(inFile);
    int x;
    int y;

    while(!input.eof()){
        input >> x;
        input >> y;
        boundaryPtAry[index++] = new boundaryPt(x,y);
    }
};

我的问题是:

boundaryPtAry[index++] = new boundaryPt(x,y);

我正在尝试将我的boundaryPt对象存储在我的类型为boundaryPt的数组中,但由于我将该数组声明为boundaryPt *,所以它不会让我存储一个boundaryPt。

这是一个引用指针的简单问题吗?我对C ++很生气。

1 个答案:

答案 0 :(得分:0)

解决了!我现在意识到,在创建对象数组时,您不仅要创建数组,还要创建对象本身。所以没有必要创建一个新对象并尝试将它放在数组中(或者在我的情况下将数组索引指向它)。

while(!input.eof()){
    input >> boundaryPtAry[index].x;
    input >> boundaryPtAry[index].y;
    index++;
}