c++ - STL vector 、指针和类

标签 c++ stl pointers vector

假设我有两个类:

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/

相关文章:

c++ - std::vector 函数 push_back 中的奇怪段错误

c - 何时对字符指针使用 malloc

c++ - union 成员的 offsetof 总是零吗?

c++ - C/C++ 动态链接如何在不同平台上工作?

c++ - 基于第一对的 "first"对 <std::pair<int, std::pair<int, int>>> 类型的 std::vector 进行排序的标准方法是什么

c++ - stof()/stoi() 与取消引用类型双关指针将打破严格别名规则

c++ - boost::mutex 发布 VS 调试构建

c++ - 如果找到函数,则启用复制构造函数

c++ - (Qt Creator - 基于 Cpp 的应用程序)Q<Objects> VS 使用指针?

C - 将结构设置为 null(赋值中的类型不兼容)