C++父类与子类栈区和堆区析构和构造问题

第一个问题 delete 一个对象会调用其析构函数吗?
第二个问题如图所示,他说不会调用子类的析构函数,但是如果子类的属性是在栈区 不会自动调用子类的析构函数吗?
第三个问题,析构函数的调用时机是什么?
第四个问题,为什么父类没有属性,子类有属性,在创建子类对象时,会调用父类构造函数?
求解答,谢谢

  1. 在C++中,当一个对象被销毁时,会自动调用其析构函数。因此,当使用delete运算符删除一个对象时,其析构函数也会被自动调用。
  2. 没看到图
  3. 当一个对象生命周期结束时,其析构函数会被自动调用,还有一种情况就是当在程序执行过程中抛出异常时,系统会自动调用所有在异常抛出点之前创建的对象的析构函数。
  4. 当创建子类对象时,会先调用父类的构造函数,再调用子类的构造函数。这是因为子类继承了父类的成员函数和部分属性,子类对象的构造需要先初始化继承自父类的部分属性和成员函数,才能初始化自己新增的属性。

不知道我说明白了没有

1、会调用析构函数
2、图在哪?
3、析构就是当对象的空间被系统回收的时候
4、没有属性也得构造对象本身,父类是子类的基础,父类不构造,哪来的子类啊

第一个问题,是的
第二个图呢?
析构函数的调用时机,delete或者是堆栈变量当函数退出销毁
构造子类必须先构造父类

1、会调用析构函数
2、无图?
3、当调用delete删除对象的时候析构函数调用
4、构造子类对象必先构造父类