我是C++中的新成員,並且嘗試自己學習C++。我爲我的項目編寫了代碼,但我從返回類的訪問器中遇到困難。在C++中使用訪問器從對象返回數組
我有一個名爲LoadData的類,它接受array_a []。 LoadData類構造函數將array_a的內存塊複製到arrayA。一個訪問器getArray()試圖返回一個指向arrayA的指針。
在main()中,我創建了一個對象數組objVec [obj_i],它收集數據並存儲在類中。當我嘗試從LoadData返回一個數組並打印出內容時,我只正確地得到了數組的第一個元素,其餘的似乎是返回內存地址。
我相信我遇到的問題要麼以我在訪問器中返回數組的方式,要麼以我調用getArray()的方式。我也有使用指針很多麻煩。
我正在爲此奮鬥了大約一週,所以任何建議和意見將不勝感激!非常感謝你提前。
class LoadData{
private:
float* arrayA;
public:
//constructor
LoadData(float array_a[])
//accessor
float getArray(){return* arrayA}
};
LoadData::LoadData(float array_a[]){
arrayA = new float[sizeOfArray]
memcpy(arrayA, array_a, sizeof(int)*sizeOfArray);
}
int main(){
class LoadData;
int objSize = 6;
LoadData **objVec = new LoadData*[objSize];
obj_i = 0;
//loop to load data
while (...){
objVec[obj_i] = new LoadData(array_a)
}
float *copyArray;
*copyArray = objVec[1]->getArray();
for (int i = 0; i<sizeOfArray; i++){
cout<<*(copyArray + i) <<'\t';
}
//end of main
}
'我是C++新手,試圖自己學習C++'然後我建議你放棄這個,並使用'std :: vector'來代替。在你現在的例子中,對你來說很簡單的東西,只要你開始寫一些玩具程序以外的東西,就會變得很頭疼。 – PaulMcKenzie 2014-11-04 23:12:33
我認爲你是對的。當我開始編碼其他東西時,我會使用std :: vector;陣列給了我很多問題。謝謝你的評論! – 2014-11-05 13:41:45