假设我有两个类:
class Class1
{
public:
std::vector<CustomClass3*> mVec;
public:
Class1();
~Class1()
{
//iterate over all the members of the vector and delete the objects
}
};
class InitializerClass2
{
private:
Class1 * mPtrToClass1;
public:
InitializerClass2();
void Initialize()
{
mPtrToClass1->mVec.push_back(new CustomClass3(bla bla parameters));
}
};
这行得通吗?或者在方法终止后,InitializerClass2::Initialize() 方法中分配的内存可能会损坏?
谢谢!
最佳答案
简而言之,这会很好地工作。
Initialize 中分配的内存位于堆上。这意味着堆栈中的更改不会影响该内存的内容。
关于c++ - STL vector 、指针和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484355/