C++类与对象Plus

news2024/9/21 10:43:42

我们之前讲的都是类与对象的基础,以及类中的几个默认函数等,今天我们就讲一下类与对象的其他东西

初始化列表

在我们的默认构造函数的时候,我们在初始化的时候我们都是在构造函数中完成我们的初始化任务

我们现在来看一个类

我们看一下我们的这个类,如果我们的这个类需要初始化的化,我们需要怎么初始化呢??

 

我们可以这样初始化吗??  不可以!

首先是const类型的对象,我们的const类型的对象只有一次初始化的机会,就是在对象定义的时候,但是我们的构造函数是在构造一个对象,所以当我们走到构造函数的括号里时,我们的这个对象就以及拥有了,所以我们就不可以对const的对象进行赋值了,所以我们应该怎么办呢??

这里就提到了我们的初始化列表

 

这里就是我们的初始化列表,因为有一些值时必须在定义的时候初始化号,所以我们就必须使用到初始化列表

我们来看一下

 

我们的A a变量现在就被初始化好了,其中我i们也可以不用这样,我们还可以这样

 

我们可以性和杨,在类的声明那里直接给值,但是记住这里时声明并不是定义,这里也是C++后面的语法,为了处理C++的构造函数对内置类型不处理搞的,而这里的const int _a = 0里面的赋值0并不是在初始化的时候给,而是给了初始化列表,我们这里要清楚的是,我们不论写不写初始化列表 ,我们的对象初始化的时候都会走初始化列表

我们也可以看一下其他的初始化列表的使用

 

我们看到我们的A a对象被初始化了,同样我们还可以给值

 我们看到,是可以的

这就是初始化列表

static 成员变量

我们在看一下 static成员变量

对于static的局部变量,我们的局部变量的生命周期就会增加,生命周期和进程的生命周期相同,那么如果是static的成员变量呢??

我们来看一下,我们的这个类的大小是多少呢??

 

OK,是4

我们这里有两个变量,其中一个是int 的,另一个是static int 的,但是我们这里只有4,说明我们的static int 的这个变量并未计算到A这个类的对象中,所以我们就能说明,我们的a变量是属于整个类的,而并不属于单个对象

而我们的这个对象的初始化也是不一样

我们的初始化 也是需要这样初始化

我们继续看一下

 

我们这里看到我们对a变量加了一次,但是我们的a1和a2变量里面的a对象都是11所以这里更说明我们的static对象是属于类的,而不属于对象

static 成员函数 

我们刚才看了static的成员变量,我们现在看一下static的成员函数

这里就直接说static成员函数的特征了,对于我们的成员函数而言,我们的成员函数有隐藏的this指针,而我们的static的成员函数没有隐藏的this指针,而我们的static的函数调用也是不一样,我们可以不使用对象调用,我们可以直接使用类和类作用限制符调用

我们来看一下

当然,也并不是我们不可以用对象调用

 

 

我们看到是可以的

那么我们的static的成员函数可以访问私有的成员变量吗??

 

其实这里我们想一下也知道不可以,为啥呢??

因为我们刚才讲了,我们的static成员函数没有this指针,所以我们也就无法通过我们的this指针去访问我们的 private成员变量

OK今天就到这里~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 LSTM 进行多类文本分类( TensorFlow 2.0)

NLP 的许多创新是如何将上下文添加到词向量中。一种常见的方法是使用循环神经网络。以下是循环神经网络的概念: 他们利用顺序信息。他们可以捕捉到到目前为止已经计算过的内容,即:我最后说的内容会影响我接下来要说的内容。RNNs 是文本和语音…

mac下删除python3.7,并将版本更新到3.9

如何卸载python3.7 有些小伙伴想直接从3.7升级到3.9 那恐怕是不行的,python3.7的库占的空间不少,所以首先我们应该来删除它. python安装后的路径分类 在删除之前需要先了解:python安装后有几类路径需要我们去查看删除 python存储库路径&am…

【分组码系列】线性分组码的网格图和维特比译码

线性分组码的网格图 由于码字的比特位是统计独立的,所以编码过程可以利用有限状态机来描述,它能精确地确定初始和最终状态。可以利用网格图进一步描述编码过程[36],采用维特比算法进行最大似然译码. 在GF(2)上定义线性分组码(n,k)。相应的(n-k)Xn维校验阵可以写成 令码字为系…

TensorFlow vs PyTorch:哪一个更适合您的深度学习项目?

在深度学习领域中,TensorFlow 和 PyTorch 都是非常流行的框架。这两个框架都提供了用于开发神经网络模型的工具和库,但它们在设计和实现上有很大的差异。在本文中,我们将比较 TensorFlow 和 PyTorch,并讨论哪个框架更适合您的深度…

队列、栈专题

队列、栈专题 LeetCode 20. 有效的括号解题思路代码实现 LeetCode 921. 使括号有效的最少添加解题思路代码实现 LeetCode 1541. 平衡括号字符串的最少插入次数解题思路代码实现 总结 不要纠结,干就完事了,熟练度很重要!!&#xff…

icevision环境安装

Installation - IceVision # 1. git clone 代码# pip 换源: ~/.pip/pip.conf 隐藏文件[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-hostmirrors.aliyun.compip install -e .[all,dev]ImportError: cannot import name Multi…

chatgpt-4它的未来是什么?该如何应用起来?

在当今快节奏的数字通信世界中,ChatGPT已成为一个强大的在线聊天平台,改变了人们互动和沟通的方式。凭借其先进的AI功能、用户友好的界面和创新技术,ChatGPT已成为个人和企业的热门选择。 然而,ChatGPT的未来有望更加激动人心和具…

VSCode的安装以及相关插件配置

VSCode是什么? VSCode严格来说,也是一款编辑器,强大之处在于集成了各种各样的插件。至此往后,将使用VSCode来取代vim。话不多说,步骤如下: 安装步骤 1、VSCode的下载 https://vscode.cdn.azure.cn/stabl…

NSSCTF (3)

[GDOUCTF 2023]hate eat snake 我们打开js源码 很明显这里当score大于60会出flag score = getScore 我们寻找到了getScore方法所在的地方 之后发现他存在于Snake

Python多线程之_thread与threading模块

Python多线程之_thread与threading模块 在Python程序中,多线程的应用程序会创建一个函数,来执行需要重复执行多次的程序代码,然后创建一个线程执行该函数。一个线程是一个应用程序单元,用于在后台并行执行多个耗时的动作。 在多…

DBWeaver 连接H2数据库 详细教程

1.DBWwaver下载网址 https://github.com/dbeaver/dbeaver/releases 2. 软件安装 点击安装文件,一直下一步即可 3. DBWeaver连接H2数据库 3.1打开软件在搜索框里面输入:h2 3.2 查询到h2数据库 3.3 点击选中的数据库,出现这样的页面&#xf…

铁路信号计轴设备简介

设备概述 计轴设备是铁路信号系统中的一个重要组成部分。它的主要功能是: 利用安装在钢轨上的传感器,来探测进入和出清轨道区段的车轮对数,进而判别轨道区段的占用和出清,其作用与轨道电路等效。 根据两站办理发车进路情况及区…

浪涌保护器的类型和应用

我们可能经常遇到电子设备损坏的情况。发生这种情况是由于多种情况造成的,例如大气变化(闪电和雷声)、电压击穿以及使用压缩机等重型设备。所有这些中断都可能会对电气设备造成破坏。进入这种情况的一种设备是浪涌保护器,也称为浪…

EndNote X9 导入知网文献 插入引用文献 方法

文章目录 1 EndNote X9 导入知网文献2 EndNote X9 插入参考文献常见问题总结3 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 EndNote X9 导入知网文献 下载知网参考文献引用: ①下载 引用; ②格式为 EndNote; 知…

流水线三维可视化运维,装配自动化提质增效

大家带来智慧生产线/设备流水线合集。 智慧仓储产线 智慧仓储产线通过对仓储现场的数字化建模,利用先进的物联网、大数据、人工智能等技术,对仓储现场设备、环境、人员进行全流程数字化管理。 为贯彻仓储行业应用的全面性,图扑 HT 应用 Web…

15个提高Javascript开发技巧

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 劈柴不照纹,累死劈柴人。上学的时候就总有那些“小怪物们”总能解出来难题&…

固态硬盘无法识别,怎么办?4招教您解决!

案例:电脑识别不了固态硬盘怎么办? 【我的电脑识别不了固态硬盘,这给我带来了很大的困扰。我尝试了很多方法,还没有解决。求一个有效的解决方法!】 固态硬盘在计算机领域中越来越普遍,其快速读取和写入速…

PyCharm十大提高生产力的插件

PyCharm是一个非常流行的Python开发IDE。除了支持Python语言,PyCharm还支持其他流行的语言,如C、C、JavaScript等。PyCharm被广泛使用,是因为它拥有许多方便而实用的插件,这些插件能够显著提高开发者的生产力。下面我们将介绍十大…

鲸鸿动能广告接入如何高效变现流量?

广告是App开发者最常用的流量变现方法之一,当App拥有一定数量用户时,开发者就需要考虑如何进行流量变现,帮助App实现商业可持续增长。 鲸鸿动能流量变现服务是广告服务依托华为终端强大的平台与数据能力为开发者提供的App流量变现服务&#…

用例评审的正确姿势,2个要点不容忽视

,点击蓝字👆 关注Agilean,获取一手干货 导语 用例评审的作用已经不言而喻,但是在很多组织的实际落地过程中,却收效甚微。研发管理人员常常会发现即使做了用例评审,一些显而易见的问题还是会出现&#xff1a…