我对C++中的内存管理是如何工作有些困惑,我理解你什么时候使用指针(新/删除),但是在帧分配时我会丢失。C++内存管理与堆分配和帧分配的区别
说我有一个简单的类(使用Qt类)
我使用指针
Demo *testInst = new Demo();
现在我明白了,当我打电话给它分配 “删除testInst;”这是释放,但我对框架分配超出范围部分感到困惑。这是否意味着当我调用delete时,类中所有不是指针的类都会自动释放,还是必须在Demo类的解构器中进行特定的内存管理?或者这意味着如果我离开这些类,那些变量就被释放了?
我是C++的新手,来自.NET背景,因此我不是100%理解手动内存管理。
您在哪里找到“帧分配”这个术语?除了上面的正常堆以外没有其他任何标志。 – bmargulies
我认为它的一个术语更多地用在MFC中,所以对不起,如果我没有得到正确的定义,我在Qt中做事情,所以我只是想知道非指针对象(QString)在指针对象(QString) *)我是否需要手动执行任何操作来释放它们,或者是否删除指针对象删除没有使用新指针分配的对象? – DrHouse