码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【C++】构造函数和析构函数


    文章目录

    • 构造函数
      • 构造函数的作用
      • 构造函数的种类
    • 析构函数
      • 作用
      • 是否走析构函数
    • 继承关系中执行构造函数和析构函数的顺序:

    构造函数

    构造函数的作用

    因只有对象创建时,才会分配空间,类中非静态数据成员不能够在类内直接初始化或赋值,C++提供了构造函数对类的数据成员进行初始化,或者是赋值
    数据成员的初始化(函数重载)
    在这里插入图片描述

    构造函数的种类

     普通构造函数:两个或以上参数的构造函数
     默认构造函数:没有参数或者所有的函数都有默认参数,一个类中只能有一个默认构造函数
     复制(拷贝)构造函数:在创建对象时,使用同一类中之前创建对象来初始化新创建的对象。
    默认:浅复制
     类型转换构造函数: explicit关键字避免以下情况
    当构造函数有一个参数时,会转换成自身类型的参数

    析构函数

    作用

    释放对象在生存期间动态申请的空间
    析构函数不能被重载

    是否走析构函数

     类的普通对象可以走构造和析构函数。先自动调用构造函数,然后运行自己写的函数,最后回收前调用析构函数。(因为对象是局部变量,函数结束时就会被回收,析构函数回收前会被调用)
    在这里插入图片描述

     创建普通对象或者new对象都会走构造函数,普通对象被回收会走析构,new出来的对象delete时也会走析构函数
    在这里插入图片描述

    继承关系中执行构造函数和析构函数的顺序:

    继承关系中的派生类创建对象:构造的执行顺序先走基类的构造,再走派生类的构造,
    继承关系中的派生类释放对象:先走派生类的析构,再走基类的析构

  • 相关阅读:
    MCE 产品发表高分文章锦集
    STM32实现硬件I2C通讯,读取MPU6050的ID号
    C语言系统化精讲(二):C语言初探
    15个经典的Spring面试常见问题
    STL中string类的实现
    c#入参使用引用类型为啥要加ref?
    LCD简介
    【每日随笔】毕业论文答辩 ③ ( 线上答辩注意点 | 答辩 PPT 准备 | 答辩通过的因素 )
    数据结构与算法(LeetCode) 第二节 链表结构、栈、队列、递归行为、哈希表和有序表
    考研模拟面试-答案【攻略】
  • 原文地址:https://blog.csdn.net/kin_16/article/details/126457229
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号