This question already has answers here:
c++ deleting vector class member memory in destructor

(4个答案)


4年前关闭。




说我有这样的课
class A {
public:
       vector<int> intVector;
       A() {
            intVector.push_back(1);
       };
       ~A(){};
};

int main() {
        A *k = new A;
        delete k;
}

将A实例化为k时,将创建intVector。但是,我的问题是,如果析构函数不处理intVector,则销毁k的指针时是否会回收分配给intVector的内存?

最佳答案

是的,编译器将在类的析构函数内生成代码以销毁所有成员变量(并调用派生该类的所有基类析构函数)

10-07 16:01