C++的6个缺省函数

2023-11-08

一.在C++中默认产生6个类成员函数,即缺省函数,它们分别是:

1.缺省构造函数
2.缺省拷贝构造函数
3.缺省析构函数
4.缺省赋值运算符
5.缺省取址运算符
6.缺省取地址运算符

二,const对于空类,编译器不会生成任何的成员函数,只会生成1个字节的占位符。有时可能会以为编译器会为空类生成默认构造函数等,事实上是不会的,编译器只会在需要的时候生成6个成员函数:一个缺省的构造函数、一个拷贝构造函数、一个析构函数、一个赋值运算符、一对取址运算符和一个this指针。

1.构造函数定义及调用
1) c++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的函数叫做析构函数;
2) 构造函数在定义时可以有参数;
3) 没有任何返回类型的声明

2.拷贝构造函数的目的就是完成对一个对象的拷贝,一般在一下三种场景下会调用该对象的拷贝构造函数:
1)函数返回类型是类的对象时
2)函数的参数是类的对象,调用该函数时会调用该类的拷贝构造函数
3)使用一个对象去初始化类的另一个对象时 F a = new F(1,2); F b = a; / F b(a) 注意必须要在类的初始化中使用,不是类的赋值注:为什么自定义拷贝构造函数必须是引用传递(&)而不能是值传递?因为防止无限递归,因为如果是值传递则会再一次调用拷贝构造函数

3.析构函数的定义及调用

  1. c++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数 2) 析构函数没有参数也没有任何返回类型的声明
  2. 析构函数在对象销毁时自动被调用

4.运算符重载函数名字为:关键字operator后面接需要重载的运算符符号。函数原型:返回值类型operator操作符(参数列表)赋值运算符主要有四点:
1)参数类型
2)返回值
3)检测是否自己给自己赋值
4)返回*this
5)一个类如果没有显式定义赋值运算符重载,编译器也会生成一个,完成对象按照字节序的值拷贝。

5.取地址成员函数,分为两种,普通取地址操作符、const取地址操作符。取地址是什么意思呢?就是返回当前对象的地址,对于成员函数来讲,this指针就是它的地址,需要返回指针。

6.this指针有哪些特性呢
1)this是一个指针,它时时刻刻指向你这个实例本身。
2)this指针的类型 类类型 *const
3)this指针并不是对子昂本身的一部分,不影响sizeof的结果
4)this指针的作用域在类成员函数的内部
5)只有在类的非静态成员函数中才可以使用,其它任何函数都不可以

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

C++的6个缺省函数 的相关文章

  • 机器人教育怎么培养双商皆高的孩子

    相信每个孩子在老师眼中 都不只是学生 更代表着一个个充满希望的未来 机器人教育除了关注孩子的综合科学素养之外 也会反复强调对道德层面的培养 格物斯坦小坦克就来聊聊机器人教育是如何培养双商皆高的孩子 在越来越强调升学率的大环境下 道德层面的教
  • TCP 协议十大相关特性总结

    目录 一 TCP特性 二 报文格式 TCP十大核心特性 1 确认应答 2 超时重传 3 连接管理 三次握手 四次挥手 三次握手 四次挥手 4 滑动窗口 情况一 接收方的ACK丢失 情况二 发送方的数据包丢失 5 流量控制 6 拥塞控制 7
  • 微信获取JS-SDK的一些注意事项

    历时两天多 取到了JS SDK 可以开始调用微信提供的网页功能接口 遇到了很多的问题 在这里记录并分享 首先是设置安全域名的问题 要注意添加完ip白名单后 注意JS接口安全域名的设置 这里设置不当会报错 invalid url domain
  • 最大熵学习笔记(零)目录和引言

    生活中我们经常听到人们说 不要把鸡蛋放到一个篮子里 这样可以降低风险 深究一下 这是为什么呢 其实 这里边包含了所谓的最大熵原理 The Maximum Entropy Principle 本文为一则读书笔记 将对最大熵原理以及由此导出的最
  • 2023年欧亚计算机科学与信息技术国际会议(FCSIT 2023)

    IEEE出版 2023年欧亚计算机科学与信息技术国际会议 FCSIT 2023 重要信息 会议网址 www ecfcsit org 会议时间 2023年7月21 23日 召开地点 中国成都 出版社 IEEE CPS 截稿时间 2023年5月
  • 16、Spring Boot——JdbcTemplate多数据源

    什么是多数据源 多数据源就是 在一个应用中想要去操作多个数据库的数据 比如说一个应用有订单表放在一个数据库里面 用户表放在另一个数据库里面 那么同一个应用就要连接不同的数据源 这种架构并不多见 但它也是一种技术 以后有这种需求 一般都是通过
  • HTTP 和 HTTPS详解

    HTTP 和 HTTPS详解 目录 HTTP 和 HTTPS详解 1 http 和 https 概述 1 1 什么是http 1 2 什么是https 1 3 两者之间的区别 2 工作原理 2 1 Http工作原理 2 2 Https工作原
  • IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/

    idea下载官网一键直达 点击跳转
  • c++子类访问父类保护成员,只能通过子类对象

    1 前言 我们知道 对外部来讲 一个类的private和protected成员 外部都不能直接访问 那么 对子类来说呢 子类如果以public方式继承父类 它还是不能直接访问private成员 并且虽然它可以访问protected成员 也是
  • [Spring学习]06 Spring Bean的生命周期

    目录 一 Spring bean的生命周期 二 连接池配置 三 延时加载机制 一 Spring bean的生命周期 传统的Java应用中 bean的生命周期为 使用new 进行Bean的实例化 然后使用该Bean 一旦bean不再被使用 则
  • js addEventListener监听scroll滚动条 距离底部一定距离,加载数据,超过最大高度移除监听事件

    测试dmeon testBox height 450px border 1px solid rebeccapurple width 500px color blueviolet overflow y auto 在这里插入代码片 div cl
  • pycharm远程linux服务器的plt.show()不显示

    仅作为记录 博主关闭pycharm重启 即可
  • 数学资源大全

    发信站 水木社区 Wed Apr 30 13 14 00 2008 站内 http www math org cn forums index php showtopic 4427 建议看此贴时 如果找某专题用ie查找 因为网站太多了 好不容
  • Open3D(C++) 法线定向(3)——朝向点云内部

    目录 一 朝向点云内部 二 代码实现 三 结果展示 一 朝向点云内部 如题 算法极其简单 无需做原理介绍 看代码即可 二 代码实现 include

随机推荐

  • 无聊的时候看了下科学计数法..

    作用 当我们要标记或运算某个较大或较小且位数较多时 用科学记数法免去浪费很多空间和时间 概念 科学记数法是一种记数的方法 把一个数表示成a与10的n次幂相乘的形式 这种记数法叫做科学记数法 例 19971400000000 1 99714
  • linux下的npm安装

    NPM Node Package Manager 即node包管理器 是用Javascript编写 最初由Isaac Z Schlueter开发 它会随着node js一起安装 用户可以通过npm把自己设计的模块分发到registry上 也
  • AD设置覆铜的过孔连接方式

    参考链接 https wenku baidu com view 15666e13f18583d049645956 过孔和焊盘有三种连接状态 noconnect 不连接 reliefconnect 十字形连接 directconnect 直接
  • VS2019 C++ SQL Server 数据库连接

    总体来说有VS有两种配置SQL Server的方式 一种是ADO 另一种是ODBC 这两种方式的查询我都有问题 查询到了结果数据不是乱码就是显示在list control上时值变了 我也不知道为什么 ADO 1 什么是ADO 以下ADO概念
  • IDEA简介及使用

    1 Intellij IDEA简介 Eclipse IBM公司开发 1 1 Jetbrains公司介绍 IDEA是JetBrains公司的产品 这家公司总部位于捷克共和国的首都布拉格 开发人员以严谨著称的东欧程序员为主 该公司旗下还有许多其
  • 关于java中实现word转pdf

    1 java中实现word转pdf几种方式如下 1 使用jacob Java COM Bridge 操作offfice的方式 基于这种方式无论是水印还是格式都可以完美转换 但是这个方式都只是基于windos下 但有些项目是需要部署到linu
  • html 页面友情提示,设置网站404页面的正确做法

    核心提示 HTTP 404 错误意味着链接指向的网页不存在 即原始网页的URL失效 这种情况经常会发生 什么是404错误 HTTP 404 错误意味着链接指向的网页不存在 即原始网页的URL失效 这种情况经常会发生 很难避免 比如说 网页U
  • Java解析环保HJ212协议

    文章目录 什么是环保HJ212协议 自己封装了一个基于java的HJ212解析类 解析效果查看 常用的标准码说明 什么是环保HJ212协议 HJ212是由国家环保行业制定的数据传输标准协议 通常是通过TCP IP通讯方式进行数据传输的 数据
  • java如何文档生成目录

    对于现有文档 含标题 使用spire doc去生成目录 由于不是免费版 没有表格行数限制 但第一页开头有个版权声明 只需要用spire生成目录 然后用poi打开它删去第一行声明即可 spire依赖
  • sublime java插件_将SublimeText3打造成简易Java IDE

    简介与优点 使用该教程 你能使你的Sublime Text3可以作为一个精简版的JAVA IDE工具 既可以独立在cmd控制台运行也可以在Sublime自带的控制台运行 运行后不会有乱码 报错后可以在文本框中直接在对应位置显示 基于原有的j
  • Matplotlib绘图(二)

    目录 Matplotlib 二 绘制一元二次方程的曲线y x 2 绘制正弦曲线和余弦曲线 subplot函数 散点图 Matplotlib 二 绘制一元二次方程的曲线y x 2 Matplotlib有很多函数用于绘制各种曲线 其中plot函
  • Openssl 1024bit RSA算法---公私钥获取和处理(一)

    1 简介 使用OpenSSL生成公私钥文件 然后再将文件中的信息读出的操作 由于要对设备升级 需要用到RSA算法对一部分验证信息进行加密 2 使用OpenSSL获取公私钥 我在window系统尝试安装OpenSSL 但是安装不上 我们可以使
  • 如何让Hyper-V使用CIFS/SMB存储

    如何让Hyper V使用CIFS SMB存储 在我们常见配置Hyper V存储的时候常常使用到的是本地的磁盘或者iSCSI的IP SAN 在使用IP SAN时是通过Iscsi连接器将磁盘挂在为本地的磁盘来使用的 但是在某些场合下没有使用IS
  • KVM——迁移KVM虚拟机

    一 KVM虚拟机迁移的方式 KVM平台中的KVM虚拟机迁移分为以下两种 1 冷迁移 静态迁移 我们存放虚拟机磁盘的目录都是挂在的一个nfs文件系统的磁盘 进行冷迁移时 只要在目标主机上挂载这个nfs文件系统 就可以看到要迁移的那个虚拟机的磁
  • Nuxt2+echarts5报错Unexpected token export?

    当在Nuxt js中使用ECharts 5时出现 Unexpected token export 错误通常是由于Nuxt js默认使用的是CommonJS模块系统 而ECharts 5使用ES模块语法所致 为了解决这个问题 需要对ES模块语
  • esp32-S3专题一:初识esp32

    初识esp32 S3 初识esp32 使用esp32 s3这款芯片开发接近一年了 分享一下开发中的一些经验和项目中的亮点 希望后人能从中借鉴到一些经验 一 优势和缺点 使用的是esp32 s3这款芯片 硬件上搭配300k的RAM的代码运行内
  • BIO、NIO、AIO 有什么区别?

    BIO NIO AIO 有什么区别 BIO 线程发起IO请求 不管内核是否准备好IO操作 从发起请求起 线程一直阻塞 直到操作完成 NIO 线程发起IO请求 立即返回 内核在做好IO操作的准备之后 通过调用注册的回调函数通知线程做IO操作
  • www.wljx.net/forum.php,齐博CMS:主页被黑,不知漏洞在哪?

    用的是PHP168 5 0和PHPWind Forums v6 3 2的高深度整合版本 今天早上发现主页被换了 好在能进后台 能ftp 换回自己的主页 仔细检查 在 cache 文件夹多了一个yf php文件 里面代码如下 请帮忙看看 ad
  • 理解GAN对抗神经网络的损失函数和训练过程

    GAN最不好理解的就是Loss函数的定义和训练过程 这里用一段代码来辅助理解 就能明白到底是怎么回事 其实GAN的损失函数并没有特殊之处 就是常用的binary crossentropy 关键在于训练过程中存在两个神经网络和两个损失函数 n
  • C++的6个缺省函数

    一 在C 中默认产生6个类成员函数 即缺省函数 它们分别是 1 缺省构造函数 2 缺省拷贝构造函数 3 缺省析构函数 4 缺省赋值运算符 5 缺省取址运算符 6 缺省取地址运算符 二 const对于空类 编译器不会生成任何的成员函数 只会生