我正在做一个项目,作为我的大学系统编程课程的作业。 我对指针,向量,堆栈和堆的事情感到困惑。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