我正在做一个项目,作为我大学系统编程课程的家庭作业。我对指针、向量、堆栈和堆的问题感到非常困惑。
使用 C++。我必须得到一个对象向量,这些对象是课程,这些课程对象有几个不同的字段。我所做的是这样的:
vector<CoursesObject> coursevector;
然后我创建了我的课程对象类,其中包含课程中剩余的空间和课程字段的名称。现在我想添加一门新课程,我这样做:
CoursesObject *theCourse = new CoursesObject(name, space);
现在我想将它添加到处理程序向量中:
coursevector.push_back(*theCourse);
据我所知,我在堆栈上创建了 Courses 对象的向量,并为堆上的新课程创建了一个新指针,并将指向堆中课程对象的指针 theCourse 添加到处理程序向量中。我说的对吗?
当我尝试删除这些课程对象时,我会:
for(int i=0; i<coursevector.size(); i++)
delete coursevector.at(i);
这给了我一个错误,它不是指针。但是我不是在 coursevector 中添加了指向 course 对象的 POINTER 吗?
请有人解释一下,我必须正确处理内存,但似乎我做得不对。