类和对象周边知识

再谈构造函数

前几期我们把六个默认成员函数一一说明后,构造函数还有一些周边知识。

初始化列表

我们在没有了解初始化列表的时候一般都是使用构造函数初始化或者在声明哪里给予缺省值,那么为什么好药存在初始化列表呢?是因为①.有些值必须在定义的时候初始化并且②.初始化列表一个变量只能出现一次

初始化列表的格式:
以冒号开始,逗号进行分割,先写成员变量,在用括号把参数括起来。
在这里插入图片描述

初始化列表是每个成员变量定义初始化的位置。有些成员必须走初始化列表:const、引用和自定义类型(有默认构造去调用默认构造,没有默认构造,就需要走初始化列表进行初始化)

隐式类型转化

如下图,两种方式都可以,第一种方式是我们普通的对象创建,第二中这是出现了隐式类型转化,这是因为2可以构造成一个临时对象,然后在通过拷贝构造
在这里插入图片描述
不希望隐式类型转化发生怎么办?在成员函数前加:explicit。

隐式类型转换支持多参数的,可以通过大括号来进行多参数的隐式类型转化。
在这里插入图片描述
注:初始化列表一定要按声明的顺序初始化!!不可以改变位置,某则会导致初始化数据有误。

static成员

在这里插入图片描述

友元函数和友元类

友元函数

注:友元函数慎用,因为相当于走后门。

当我们如果想要重载流提取和流插入操作符的时候,需要定义在类外面,是因为定义在类中就会导致参数顺序与底层实现不一致。那么为了解决这个问题,我们定义到了类外面,但是就导致私有的成员变量我们无法访问,那么这个时候我们就需要将友元函数的声明写到类中即可。

格式:friend+ 函数声明
友元函数的理解:想访问谁的私有成员变量,你就需要在它的里面写友元函数的声明。

那么我们都说慎用友元函数了,怎么解决呢?利用公有的get/set方法,可以替代友元函数。注意:友元函数没有this指针

友元类

在这里插入图片描述

内部类(c++很少有,做了解即可)

在一个类里定义另一个类。(相当于套娃)
那么如果我们用szieof()操作符算一个内部类,他的大小呢?**下图的答案是8。**因为A里面成员变量没有B的成员变量。从内存角度来说,类只是声明。
在这里插入图片描述

内部类的特点:
①. B类会收A类的类域限制。
②.内部类天生就是外部类的友元类。即:内部类可以访问外部类的私有;但是外部类不能访问内部类。

匿名对象

区别:
在这里插入图片描述
特点:匿名函数的生命周期只在当前一行。(当场构造,当场析构)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/518357.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试面试200问(全)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、你的测试职业发展是什么? 测试经验越多&#xf…

CleanMyMac X4.14.7永久免费Mac电脑清理和优化软件

CleanMyMac X 是一款功能强大的 Mac 清理和优化软件,适合以下几类人群使用: 需要定期清理和优化 Mac 的用户:随着时间的推移,Mac 设备上可能会积累大量的无用文件、缓存和垃圾,导致系统运行缓慢。CleanMyMac X 的智能扫…

onlyOffice-windows 安装说明(二)

onlyoffice windows 安装 onlyoffice 支持多个平台比如:Windows Server、Linux、Docker 以下内容是对官网安装说明做了简单翻译,仅供参考,原文链接地址参见文末。 社区版允许您在本地服务器上安装ONLYOFFICE文档,并将在线编辑器…

stl的基本知识学习

1.vector: 2.set: 3.map: 4.栈: 5.队列: 6. unordered_map与unordered_set: 7. 位运算: 8.cctype: 导图:

C++ 路径问题

目录 例1 例2 例3 例4 例5 例6 例1 62. 不同路径 1.初始化 2.当前位置的条数,就是上面位置的条数 ,加上其左边位置的条数,dp[i][j] dp[i - 1][j] dp[i][j - 1]; 参考代码 class Solution { public:int uniquePaths(int m, int n) …

CentOS上安装MySQL 5.7和MySQL 8.0教程

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

第二证券|转融通是什么意思?转融通通俗理解

转融通是指证券金融公司借入证券、筹得资金后,再转借给证券公司,是一假贷关系,详细是指证券公司从符合要求的基金办理公司、保险公司、社保基金等组织投资者融券,再将这部分证券转借给其它证券公司。 转融通包含转融券和转融资这…

阿里云ECS磁盘扩容操作手册

云原生专栏大纲 文章目录 ESC磁盘扩容步骤前提条件云盘备份云盘扩容扩容分区和文件系统前提条件操作视频操作步骤准备工作:获取目标云盘信息步骤1:扩容分区步骤2:扩容文件系统 ESC磁盘扩容步骤 扩容已有云盘的操作步骤和注意事项_云服务器 …

用开发CesiumJS模拟飞机飞行应用(一,基本功能)

本部分向您展示如何构建您的第一个 Cesium 应用程序,以可视化模拟从旧金山到哥本哈根的真实航班,并使用 FlightRadar24收集的雷达数据。您将学习如何: 在网络上设置并部署您的 Cesium 应用程序。 添加全球 3D 建筑物、地形和图像的基础图层。…

如何让文案充满故事感,媒介盒子揭秘

文案本质是沟通,而故事是一种高明的沟通策略,在信息泛滥的时代下,“有故事感”的文案拥有比普通文案更强大的传播力, 它们利用人类对故事的天然喜好,消解了用户对广告的排斥感。今天媒介盒子就来和大家聊聊&#xff1a…

获取别人店铺的所有商品API接口

使用淘宝淘口令接口的步骤通常包括: 注册成为淘宝开放平台的开发者:在淘宝开放平台网站上注册账号并完成认证。 创建应用以获取API密钥:在您的开发者控制台中创建一个应用,并获取用于API调用的密钥,如Client ID和Clie…

如何选择乐歌升降台,一张图带你了解全型号参数功能

在现代办公环境中,久坐已成为一种常态,而这种生活方式带来的不良影响日益凸显。乐歌办公升降电脑台应运而生,不仅是一种办公家具,更是健康办公的有力助手。让我们从多个角度深入了解这款产品的功能意义。 1. 台面层数 乐歌办公升…