第一个问题 delete 一个对象会调用其析构函数吗?
第二个问题如图所示,他说不会调用子类的析构函数,但是如果子类的属性是在栈区 不会自动调用子类的析构函数吗?
第三个问题,析构函数的调用时机是什么?
第四个问题,为什么父类没有属性,子类有属性,在创建子类对象时,会调用父类构造函数?
求解答,谢谢
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
C++父类与子类栈区和堆区析构和构造问题
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
4条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
- 在C++中,当一个对象被销毁时,会自动调用其析构函数。因此,当使用delete运算符删除一个对象时,其析构函数也会被自动调用。
- 没看到图
- 当一个对象生命周期结束时,其析构函数会被自动调用,还有一种情况就是当在程序执行过程中抛出异常时,系统会自动调用所有在异常抛出点之前创建的对象的析构函数。
- 当创建子类对象时,会先调用父类的构造函数,再调用子类的构造函数。这是因为子类继承了父类的成员函数和部分属性,子类对象的构造需要先初始化继承自父类的部分属性和成员函数,才能初始化自己新增的属性。
不知道我说明白了没有
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2022-08-06 00:46回答 3 已采纳 虚函数靠后,非虚函数优先
- 2021-11-28 15:45回答 2 已采纳 你把父类的析构函数定义成虚函数毫无意义。因为子类不可能重写父类的析构函数。还有你~cat里为什么要判断m_name ==null?它永远不可能是空啊你析构的是cat这个类,又不是name这个变量,要么
- 2021-08-05 01:01回答 2 已采纳 你新建之后没有free 所以这个指针一直在内存里。
- 2024-07-11 08:39xWade_的博客 子类重定义父类的成员函数和重载父类的成员函数在函数名称、参数列表以及返回类型等方面存在区别。函数名称重载:在同一个类中,函数名相同。重定义:在子类中,与父类中函数名相同。参数列表重载:参数列表不同,即...
- 2023-03-25 13:47回答 1 已采纳 作为属性的 val 和作为派生类自身的那个对象,是两个不同的对象。Base val当然会调用构造函数 我举个现实的例子class User {};class Teacher : User {};cla
- 2015-12-20 17:32回答 8 已采纳 你所用的是继承,而不是内嵌对象, **_先申明了一个父类的变量 Command cmd;经过一些处理后 cmd被赋值了一个OnCommand对象**_你的这句话,实际上就是赋值兼容规则的体现。用子类对
- 回答 1 已采纳 语法这么规定的,因为构造派生类要调用基类构造函数,当基类默认无参构造函数不存在,或者多个构造函数的情况下,那么调用哪个必须要可以预期,由程序员来控制。 所以必须引入这样的语法。
- 2020-06-09 06:22lg23:59的博客 先构造父类后构造子类,析构顺序相反。(因为对象存放在栈上,栈区上的数据先进后出)
- 2021-06-17 02:40回答 1 已采纳 缺少默认构造函数,当你声明一个People数组时(比如 People ps[10]),就出报错,需要加上一个默认构造函数(就是无参构造函数),如下: People(){name = "";age =
- 2022-03-13 03:20回答 2 已采纳 构造函数就是对象创建的时候做些什麽;析构函数就是对象销毁的时候做些什麽 C++设计一个学生类,包括学号、姓名、性别、计算学生的总成绩的成员函数以及构造函数和析构函数。一直搞不懂构造函数怎么调用,和析构
- 2023-04-12 02:04回答 1 已采纳 B()创建了一个临时对象,然后通过A a = 进行了隐式类型转换所以说这里其实创建了2个对象之所以构造函数少一次,是因为你拷贝构造函数没有写 #include <iostream> usi
- 2019-06-06 03:05weixin_30386713的博客 先有父类,再有子类,先析构子类,再析构父类第一,子类对象在创建时会首先调用父类的构造函数第二, 父类构造函数执行结束后,执行子类的构造函数第三, 当父类的构造函数有参数时,需要在子类的初始化列表中显示...
- 2021-01-14 12:01鲸游的博客 原标题:父类,子类与继承的关系先有父类,再有子类,先析构子类,再析构父类第一,子类对象在创建时会首先调用父类的构造函数第二,父类构造函数执行结束后,执行子类的构造函数第三,当父类的构造函数有参数时,...
- 2020-12-17 11:34在PHP编程语言中,类与对象是面向对象编程的基础元素,而构造函数和析构函数则是其中的关键概念,尤其在创建和销毁对象时起到至关重要的作用。本文将深入探讨这两个特性。 首先,让我们来理解构造函数。在PHP 5及更...
- 2020-11-24 07:30big__C的博客 目录什么是面向对象的继承C++继承中的权限管控 什么是面向对象的继承 【1】类的继承案例 基类为:person,派生类为man,所有权限均为public 演示1:派生类“继承”了基类的成员变量 演示2:派生类“继承”了基类...
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司