类的构造函数和析构函数

2023-11-10

1. 把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。这下就不用担心忘了对象的初始化和清除工作。

2. 构造函数、析构函数与类同名,由于析构函数的目的与构造函数的相反,就加前缀‘~’以示区别。

3. 构造函数与析构函数都没有返回值类型,这与返回值类型为 void 的函数不同。构造函数与析构函数的使命非常明确,就象出生与死亡,光溜溜地来光溜溜地去。如果它们有返回值类型,那么编译器将不知所措。为了防止节外生枝,干脆规定没有返回值类型。

4. 构造函数和析构函数只是为public.

 

构造函数

1. 构造函数最重要的作用是创建对象本身。
2. C++规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象。

3. C++又规定,如果一个类没有提供任何的构造函数,则C++提供一个默认的构造函数(由C++编译器提供),这个默认的构造函数是一个不带参数的构造函数,它只负责创建对象,而不做任何的初始化工作。
4. 只要一个类定义了一个构造函数,不管这个构造函数是否是带参数的构造函数,C++就不再提供默认的构造函数。也就是说,如果为一个类定义了一个带参数的构造函数,还想要无参数的构造函数,则必须自己定义。  

 

析构函数
1. 当一个对象生命周期结束时,其所占有的内存空间就要被回收,这个工作就由析构函数来完成。
2. 析构函数是“反向”的构造函数,析构函数不允许有返回值,更重要的是析构函数不允许带参数,并且一个类中只能有一个析构函数。

3. 析构函数的作用正好与构造函数相反,对象超出其作用范围,对应的内存空间被系统收回或被程序用delete删除时,析构函数被调用。
4. 根据析构函数的这种特点,我们可以在构造函数中初始化对象的某些成员变量,给其分配内存空间(堆内存),在析构函数中释放对象运行期间所申请的资源。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类的构造函数和析构函数 的相关文章

  • DDR2 DDR3的区别

    DDR2 DDR3的区别 功耗进一步减少 DDR2内存的默认电压为1 8V 而DDR3内存的默认电压只有1 5V 因此内存的功耗更小 发热量也相应地会减少 值得一提的是 DDR3内存还新增了温度监控 采用了ASR Automatic sel
  • 简单的开集电极保护电路

    开集电极方式输出经常用于需要向外强力驱动输出数字或者脉冲缓冲信号的情况 在严酷的工作环境下比如汽车系统 这些信号需要被保护用来抵抗那些加在输入信号上可以立即损坏三极管的不可预知的短路信号 通常在开集电极的输出端嵌入一系列电阻的方法也有它的缺
  • HTTP协议之multipart/form-data请求分析

    无意中发现了一个巨牛的人工智能教程 忍不住分享一下给大家 教程不仅是零基础 通俗易懂 而且非常风趣幽默 像看小说一样 觉得太牛了 所以分享给大家 点这里可以跳转到教程 首先来了解什么是multipart form data请求 根据http
  • 简单的matlab分布式计算

    matlab的分布式计算可以理解为一台机器作为client 主控机 其他的机器分别作为计算的结点 要由client进行控制和操作 如果把单机上的 m文件直接放到client运行 是不会产生分布式计算的效果的 只相当于在主控机进行了计算 而其
  • 十万行代码!!!

    前些天 看到网上雷军写的一篇好象是叫给程序员的几个建议 说到程序员必须要写够十万行代码才能成为高手 不要心存侥幸 于是我回来计算了一下我的程序 不算不知道 一算吓一跳 居然有超过9万行的代码 如果不算表单属性等 也有45000多行纯代码 这
  • 2012年9月开学季CSDN高校俱乐部专家巡讲讲师招募

    基本介绍 CSDN高校俱乐部CSDN高校俱乐部 以下称 俱乐部 是一个非盈利性的 面向全国IT专业大学生的技术组织 辐射全国数百所高校 俱乐部吸引到来自各高校对程序开发怀有强烈热情的大学生 以线上论坛线下活动形式开展学生之间 学生与导师之间
  • Ubuntu18.04 编译安装llvm-clang

    背景知识 LLVM和GCC的区别 传统编译器 传统编译器的工作原理基本上都是三段式的 可以分为前端 Frontend 优化器 Optimizer 后端 Backend 前端负责解析源代码 检查语法错误 并将其翻译为抽象的语法树 Abstra
  • 单片机IO引脚驱动能力的提高

    这篇文字学到不少东西 包括文中链接 在此感谢坐而论道 现摘录如下 早期的51单片机 驱动能力很低 P1 P2和P3口只能驱动3个LSTTL输入端 P0口可驱动8个 如果想要驱动更多的器件 就要用到 总线驱动芯片 经常用的就是74LS244
  • postgresql 数据库的备份与恢复(命令模式)

    Postgresql备份和恢复 SQL转储篇 Postgresql备份和恢复 SQL转储篇 作者 小P来自 LinuxSir Org摘要 和任何包含珍贵数据的东西一样 PostgreSQL 数据库也应该经常备份 备份PostgreSQL数据
  • “北漂”小夫妻新婚后的理财计划

    北漂 小夫妻新婚后的理财计划 提要 经过多年的努力打拼 1976 年出生的姜帆终于在京城站稳脚跟 做上了一家大公司的业务主管 今年 十一 国庆节还 和谈了多年马拉松恋爱的女友举行了婚礼 面对婚后新形势下几个令他烦恼的家庭理财目标 他该如何应
  • 研发人员欠缺的“不要脸”文化

    一直感觉研发人员相对市场人员确实缺少点什么 今天听到一个原华为的人说华为的文化中有一个 不要脸 文化 讲的就是研发人员要特别注意的事项 特别说明 不要脸 三个字 据说是任正非认为这样好记 才取得名字 这三点是 抬头看路 找人问路 请人带路
  • 无线路由、AP、网桥之区别详解篇

    通过无线上网冲浪 现在已经不是新鲜的事情 随着近一两年无线 网络的飞速发展 从企业到家庭都开始在不同的领域体验着 自由上网 的乐趣 笔者接触无线网络也有一段时间了 经常在一些无线论坛逛游 无论是在现实生活还是在论坛中 总会有朋友不断的问这样
  • 我的英雄之路--转自HERO2008会刊

    HERO2007仍落落在目 HERO2008即将来临 能参加两届英雄大会 甚是荣幸 于是想写一写我的英雄之路 提笔易 落笔难 反复问自己是否配得上 英雄 二字 打开社区 看看自己的排名 虽排名速降 尚位居前列 于是厚起脸皮说说自己的在CSD
  • 使用嵌入式linux完全手册光盘的arm-linux-gcc 遇到问题 自己编译

    Redhat9下重新生成交叉编译器gcc 3 4 5 glibc 2 3 6 看到论坛上有兄弟也遇到 arm linux gcc lib tls libc so 6 version GLIBC 2 4 not found required
  • 源文件字符集,编译器内部字符集,执行字符集,控制台乱码问题,Qt中文问题

    源文件字符集 源文件本身也是文本文件 所以源文件字符集是指源文件保存时采用哪种字符集编码 VC 下源文件默认是gbk编码 如果想要更改 可以通过 文件 高级保存选项 修改某个源文件的编码方式 似乎没有什么选项能够设置创建项目时的源文件编码
  • 立体电影

    立体电影 百科名片 1953年5月24日立体电影首次出现 为了把观众从电视夺回来 好莱坞推出了一种新玩艺儿 立体电影 戴着特殊眼镜的观众像在观看 布瓦那魔鬼 及 蜡屋 这类惊险片那样 发现自己躲在逃跑的火车及魔鬼的后面 从而为我们带入了立体
  • 如何正确的关闭 MFC 线程

    前言 近日在网上看到很多人问及如何关闭一下线程 但是我看网上给出的并不详细 而且有些方法还是错误的 小弟在此拙作一篇 不谈别的 只谈及如何正确的关闭MFC的线程 至于Win32和C RunTime的线程暂不涉及 一 关于MFC的线程 MFC
  • 【Excel】工作中会用到的excel操作和技巧

    最近入职培训 接受了一些企业文化的洗脑课 不过也有一些是很有实际应用的课程 比如excel操作和技巧 现将自己觉着很有用的地方总结如下 1 基础性操作与技巧 说在前面 一个好的工作表格 需要主要以下几点 首行首列要留白 外边框要加粗 字体字
  • 面经-Bosch博世无锡&UL美华

    工作总算有所眉目了 太多的总结暂时还没有太多心情来理清楚 先来两个面经 给可能现在或以后需要的人们1 Bosch 博世无锡柴油系统博世公司 业内的人都知道 汽车部件的巨无霸 最近几年才来到中国 虽然比起德尔福有些稍晚 但发展前景值得期待 无
  • 导航电子地图的制作过程

    背景知识 1 导航原理 现代导航通过实时测定运动客体的当前位置及速度 方向等运动参数 以此为基础通过分析和计算 确定若干条符合某些条件要求如 距离 速度 时间 方向 的路线和行驶方案 然后利用系统进行引导和控制客体沿确定路线行驶 并提供必要

随机推荐

  • 【前端】node、npm、pnpm部署react项目过程中问题记录

    最近在重新部署一个前后端分离的项目时 在前端环境这里遇到了一些麻烦 通过百度找到的node npm pnpm的处理情况不尽相同 没能很准确地解决到问题 经过多次的尝试才自己得到结论 现在记录一下操作过程中遇到的问题 1 目标是成功安装pnp
  • this action could not be completed. Try again

    问题描述 直接在organiser点击upload to app store出现 this action could not be completed Try again 解决办法 1 打开xcode 2 选择xcode gt open d
  • 基于Ambari 2.6 hdp2.6 集成Redis5.0.0

    1 将Redis组件纳入Amabri集群 查看hdp版本 hdp select status hadoop client 得到hadoop client 2 6 5 0 292 可知hdp版本为2 6 主节点上 cd var lib amb
  • Elasticsearch 搜索数量不能超过10000的解决方案

    目录 一 问题描述 二 问题分析 三 解决方案 3 1 调大index max result window 不推荐 3 2 cardinality 不推荐 3 3 track total hits 推荐 一 问题描述 开发环境 JDK1 8
  • 【STM32F4】STM32F407+ESP8266连接机智云过程详解

    要求 通过手机上的机智云通用APP 点亮开发板载LED0 LED1 摘要 硬件组成 STM32F407ZGT6 esp8266 乐鑫 软件APP 机智云开发都者中心下载的通用APP Demo Xcom串口调试助手 Keil V5 调试过程详
  • mui实现表格

    mui的css文档中没有向bootstrap中类似的写好的样式供调用 但是用table显示表格本身就不难看 再写一些CSS类完全可以放到网页中 下面提供代码
  • ROS2中创建 Python 和 C++包

    创建 Python 包 在本教程中 您将学习如何创建和设置 ROS2 Python 包 我将向您展示每一步 并解释文件之间的关系 在哪里编写节点 如何添加启动文件等 设置 ROS2 Python 包 Python包内文件说明 package
  • 进程管理详解

    1 进程 进程就是出于执行期的程序 但是进程并不仅仅局限于一段可执行的代码 通常进程还要包括其他资源 像打开的文件 挂起的信号 内核内部数据 处理器状态 一个或多个具有内存映射的内存地址空间及一个或多个执行线程 当然还包括用来存放全局变量的
  • idea工具基础配置(Mac)

    用于个人在初次使用idea时 做一些基础配置 便于后续快速开发 此文章不涉及快捷键设置 若需要快捷键设置可查看其他链接 idea Mac 快捷方式设置 快捷键改为eclipse 1 idea背景颜色 intelliJ IDEA gt pre
  • (每日一练)MATLAB数据拟合

    今天就的学习内容是数据拟合 数据拟合也称为曲线拟合 是一种把现有数据透过数学方法来代入一条数式的表示方式 科学和工程问题可以通过诸如采样 实验等方法获得若干离散的数据 根据这些数据 我们往往希望得到一个连续的函数 也就是曲线 或者更加密集的
  • SpringMVC学习笔记

    springMVC简单入门 快速搭建 pom xml依赖
  • JQuery DOM

    操作文本 常用方法 代码实现 div 我是div div
  • 用Python赚钱的4个大招,女程序员做副业躺赚

    关于穷 去年有了一个更学术的说法 隐形贫困人口 就是因为有太多 种草达人 让我们为了物质生活超前消费 再加上不理财的话 那简直是雪上加霜 看到知乎上面最近有一个很火的问题 90后的你 现在拥有多少存款 你会看到人生百态 有人父母双亡 白手起
  • Docker : Docker镜像的分层结构

    1 美图 2 概述 3 base镜像 base 镜像简单来说就是不依赖其他任何镜像 完全从0开始建起 其他镜像都是建立在他的之上 可以比喻为大楼的地基 docker镜像的鼻祖 base 镜像有两层含义 不依赖其他镜像 从 scratch 构
  • Github 如何设置 master 为默认分支

    起因 github 新版本上线之后 原默认分支为 master 现在统一改为了 main 我不禁产生疑问 为什么要改呢 原因大概是漂亮国农奴历史遗留问题导致的 master 奴隶主 slaver 奴隶 解决方法 我们已经习惯以 master
  • 算法:优先队列-理论

    目录 优先队列 我们平时比较常见的优先队列的场景有什么 优先队列的实现机制 java的优先队列是怎么实现的 优先队列 我们先回忆一下什么是队列 队列 一种先进先出的数据结构 主要关注点在于先入的元素
  • 【初级计量经济学】内生性问题——工具变量法(Stata实现)

    目录 1 数据来源以及变量详目 1 1变量一览表 1 2数据描述性统计 2 模型设定以及初步回归 2 1 OLS 模型 2 2 回归结果 2 3 回归结果分析 内生性问题校正 1工具变量法 2 两阶段最小二乘 3 豪斯曼检验 stata手工
  • 智能机器人用什么语言编程

    智能机器人用什么语言编程 对于很多家长们来说 他们的任务之一就是培养孩子的学习 很多的家长在培养孩子的学习方面可以说是十分的重视的 会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于
  • servlet / jsp 学习——java,关系,区别,核心概念,代码例子

    互联网三大基石 HTTP HyperText Transfer Protocol 传输数据 URL Uniform Resource Locator 定位数据 HTML HyperText Markup Language 显示数据 serv
  • 类的构造函数和析构函数

    1 把对象的初始化工作放在构造函数中 把清除工作放在析构函数中 当对象被创建时 构造函数被自动执行 当对象消亡时 析构函数被自动执行 这下就不用担心忘了对象的初始化和清除工作 2 构造函数 析构函数与类同名 由于析构函数的目的与构造函数的相