2016-04-27 54 views
0
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); 
    } 
}; 

我的問題是:類型MyObj中和MyObj中*不兼容

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

我想保存在我喜歡的類型boundaryPt的陣列我boundaryPt對象,但自從我宣佈數組boundaryPt *它不會讓我存儲一個邊界點。

這是一個簡單的問題,指出一個指針嗎?我用C++生鏽了。

+1

'boundaryPtAry [index] .x = x; boundaryPtAry [index] .y = y;索引++;'? – songyuanyao

+0

工作。我現在意識到,當我創建一個對象數組時,它實際上會創建實際的對象。所以它們甚至不需要創建一個新的boundaryPt對象。謝謝! – user5904091

+1

@ user5904091請將您的答案作爲答案發布,而不是更新問題本身。 –

回答

0

已解決!我現在意識到,當創建一個對象數組時,你不僅僅是創建一個數組,而且也是對象本身。所以沒有必要創建一個新的對象,並嘗試將它放入數組(或者在我的情況下有數組索引指向它)。

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

你是從Java背景來的嗎? –

+0

簡答:是的。長的回答:我是一名學生,幾乎所有的課程都在本學期之前用Java分配了項目,所以我對C++的經驗比Java少。但我很高興今天學到了一些關於物體陣列的新東西。 – user5904091