我正在做一個項目,作爲我的大學系統編程課程的作業。 我對指針,向量,堆棧和堆的事情感到困惑。C++,向量,指針和對象混淆
使用C++。 我必須得到一個課程的對象矢量,這些課程對象有幾個不同的領域。 我所做的就是這樣的:
vector<CoursesObject> coursevector;
,然後我創造了我的課程對象類,它包含留在課程和課程領域的名稱空間。 現在我想添加一個新的過程中,我做的:
CoursesObject *theCourse = new CoursesObject(name, space);
現在我想將它添加到處理程序向量:
coursevector.push_back(*theCourse);
與所有我知道,我創建課程對象的矢量並在堆上創建了一個指向新課程的新指針,並將該指針添加到處理程序向量中指向堆中的課程對象的指針theCourse。我說的是正確的嗎?
當我嘗試刪除這些課程的對象,我做的:
for(int i=0; i<coursevector.size(); i++)
delete coursevector.at(i);
這給了我一個錯誤,這是不是一個指針。但是,我還沒有在課程向量中添加指向課程對象的指針嗎?
請有人解釋,我必須正確處理內存,似乎我沒有得到正確的。
您可以使用矢量<* CoursesObject>和使用它存儲指針而不是對象。 – Jimm