news 2026/3/16 0:12:26

C++小知识点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++小知识点

一、const

1、放在成员函数列表的后面

2、const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修饰

Date* const this---->const Date* const this

3、所有不修改的成员函数都需要加,可以检查出将‘==’写成‘=’导致的错误

二、取地址运算符重载

取地址运算符重载分为普通取地址重载和const取地址重载,一般这两个编译器自动生成的就够我们使用了,不需要显示实现。除非有坏心思,不想让别人取到当前类的地址,就可以自己实现并胡乱返回一个地址

下面是这两个函数(一般不用写)

那么就来说说怎么使坏吧,下面呢是正常地址

如果我们这样做

那么

就会返回一个错误的地址了,就可以整蛊同学/事了。

三、类型转换

2构造一个A的临时对象,再用这个临时对象拷贝构造aa2,编译器遇到连续构造+拷贝构造————>优化为直接拷贝

四、再探构造函数

1、初始化列表以一个冒号开始,接着是以一个逗号分隔的数据成员列表,每个成员变量后面跟着一个放在括号中的初始值或表达式

下面这两个必须在初始化列表中,还有一个是没有合适默认构造函数可用。其他的可以函数体也可以初始化列表,两者也可以同时出现

2、

每个成员变量在初始化列表中只能出现一次

3、有的的变量也可以不初始化

结果就是

4、再看下面这个图

这依然是声明,不是定义,后面的1是缺省值 ,给初始化列表使用

5、尽可能使用初始化列表

每个成员都要走初始化列表

1>在初始化列表初始化的成员

2>没有在初始化列表的成员

a.声明的地方有缺省值用缺省值

b.没有缺省值

x.内置类型:不确定,看编译器,大概率随机值

y.自定义类型:调用默认构造,没有默认构造就编译报错

3>引用const没有默认构造自定义 必须在初始化列表初始化

6、初始化列表中按照成员变量在类中声明顺序进行初始化,跟成员在初始化列表出现的先后顺序无关。建议声明顺序和在初始化列表的顺序保持一致 。看下面这个题

这段代码先声明了_a2,先走,_a2(_a1),而此时_a1还未初始化,所以是随机值,再走,_a1(a),a是1则_a1的值为1

trying to do better!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 6:55:35

32、虚拟专用网络协议与证书颁发机构的配置管理

虚拟专用网络协议与证书颁发机构的配置管理 1. 虚拟专用网络协议常见问题解答 虚拟专用网络(VPN)协议在网络连接和安全访问方面发挥着重要作用。以下是一些常见问题及解答: |问题编号|问题描述|答案|解释| | ---- | ---- | ---- | ---- | |1|VPN 的作用有哪些?|A, B, …

作者头像 李华
网站建设 2026/3/13 20:46:42

44、网络安全事件响应与攻击类型解析

网络安全事件响应与攻击类型解析 在当今数字化时代,网络安全至关重要。当网络出现漏洞被利用时,及时且恰当的响应是保障网络安全的关键。以下将详细介绍网络安全事件的应对措施以及常见的攻击类型。 安全事件的响应步骤 发现安全事件 当发现网络存在被利用的漏洞时,需要…

作者头像 李华
网站建设 2026/3/14 1:51:31

最近做AI Agent的十条经验总结

随着AI技术的不断发展,AI Agent(智能代理)已经开始在各行各业中发挥重要作用。无论是客服、医疗、教育,还是创意写作、数据分析等领域,AI Agent都在帮助人们提高工作效率、节省时间、解决复杂问题。然而,开…

作者头像 李华
网站建设 2026/3/13 21:40:58

《灵足之脑:大模型驱动双足机器人全栈技术实战系列》第 0 篇:开启具身智能的“奥德赛” —— 前言与通识

第 0 篇:开启具身智能的“奥德赛” —— 前言与通识 1. 写作背景:当“大脑”遇见“身体” 在人工智能的长河中,我们经历了从逻辑符号化到大规模统计学习的跨越。2023 年起,以 GPT 为代表的大语言模型(LLM)赋…

作者头像 李华
网站建设 2026/3/12 16:16:23

数据结构——链表自实现

❀保持低旋律节奏->个人主页 专栏链接&#xff1a;《C学习》、《Linux学习》 文章目录头文件实现测试文件实现易错汇总头文件实现 #pragma once #include<stdio.h> #include<stdlib.h> // 补充bool类型头文件&#xff08;C语言需手动定义或包含stdbool.h&#…

作者头像 李华
网站建设 2026/3/13 9:32:22

告别Java开发碎片化!全流程智能平台让需求直转可执行项目

在Java企业级开发场景中&#xff0c;研发人员普遍面临工作流程割裂的核心痛点&#xff1a;从需求分析、接口定义、数据建模到代码实现&#xff0c;需在多款工具与不同开发上下文间频繁切换&#xff0c;不仅直接限制研发效率&#xff0c;还易引发设计不一致与细节遗漏问题。针对…

作者头像 李华