C++编程this指针练习
这段代码是用 C++ 编写的,定义了一个 Car
类(类是 C++ 中用于创建对象的蓝图),并通过 main()
函数创建和使用了该类的对象。下面是对整个程序的逐行解释,并在关键部分加上注释说明。
✅ 代码整体功能:
定义一个表示汽车的类 Car
,包含品牌(brand)和年份(year),并提供显示信息、修改年份的方法。最后在主函数中测试这些功能。
🔍 详细代码分析:
cpp
浅色版本
#include <iostream> // 引入输入输出流库
#include <string> // 引入字符串库,用于使用 string 类型
using namespace std; // 使用标准命名空间,避免每次都要写 std::
🚗 定义 Car 类
cpp
浅色版本
class Car {
private:string brand; // 私有成员变量:品牌int year; // 私有成员变量:年份
private:
表示这些数据成员只能被类内部的成员函数访问。
🏗️ 构造函数(Constructor)
cpp
浅色版本
public:Car(string brand, int year) {this->brand = brand;this->year = year;// cout << "构造函数中:" << endl;// cout << this << endl;}
- 构造函数用于初始化新创建的
Car
对象。 this->
是指向当前对象的指针,用来区分参数名和成员变量名。- 注释掉的部分可以打印构造时的信息和地址。
📺 显示车辆信息的函数
cpp
浅色版本
void display() const {cout << "Brand: " << this->brand << ", Year: " << this->year << endl;// 也可以不使用 this->,直接写 brand 和 year}
const
表示这个函数不会修改对象的状态。- 这里可以省略
this->
,因为没有同名局部变量。
🔄 修改年份并返回引用(链式调用支持)
cpp
浅色版本
Car& setYear(int year) {this->year = year; // 更新年份return *this; // 返回当前对象的引用,支持链式调用}
setYear()
方法可以修改年份,并返回自身引用,允许连续调用,例如:car.setYear(2023).display();
🧪 主函数(程序入口)
cpp
浅色版本
int main() {
创建并显示一个宝马汽车对象:
cpp
浅色版本
Car car("baoma", 2024); // 创建一个 Car 对象car.display(); // 显示品牌和年份
链式调用设置年份并显示:
cpp
浅色版本
car.setYear(2023).display(); // 修改年份为2023后再次显示
- 因为
setYear()
返回的是*this
,所以可以直接调用display()
。
被注释的其他测试代码:
cpp
浅色版本
// Car myCar("benci", 2024); // 另一个例子
// myCar.display();// cout << "main函数中:" << endl;
// cout << &car << endl;// Car car2("baoma", 2024);
// cout << "main函数中:" << endl;
// cout << &car2 << endl;
- 这些被注释的语句可用于查看对象的内存地址,验证每个对象是否不同。
🏁 程序结束
cpp
浅色版本
return 0;
}
✅ 输出结果(运行程序后的预期输出):
浅色版本
Brand: baoma, Year: 2024
Brand: baoma, Year: 2023
💡 总结
功能 | 描述 |
---|---|
构造函数 | 初始化品牌和年份 |
display() | 显示汽车的品牌和年份 |
setYear() | 修改年份并返回对象引用以支持链式调用 |
链式调用 | car.setYear(2023).display(); 是面向对象编程中常见的设计模式 |
如需进一步扩展,还可以添加更多属性(如颜色、价格等)或方法(如获取品牌、比较年份等)。
相关文章:
C++编程this指针练习
这段代码是用 C 编写的,定义了一个 Car 类(类是 C 中用于创建对象的蓝图),并通过 main() 函数创建和使用了该类的对象。下面是对整个程序的逐行解释,并在关键部分加上注释说明。 ✅ 代码整体功能: 定义一个…...

iOS音视频解封装分析
首先是进行解封装的简单的配置 /// 解封装配置 class KFDemuxerConfig {// 媒体资源var asset: AVAsset?// 解封装类型,指定是音频、视频或两者都需要var demuxerType: KFMediaType .avinit() {} }然后是实现解封装控制器 import Foundation import CoreMedia i…...

突破智能驾舱边界,Imagination如何构建高安全GPU+AI融合计算架构
日前,“第十二届汽车电子创新大会暨汽车芯片产业生态发展论坛(AEIF 2025)”在上海顺利举办。大会围绕汽车前沿性、关键性和颠覆性技术突破,邀请行业众多专家学者,分享与探讨了汽车电子产业的技术热点与发展趋势。在5月…...

DeepSeek 如何实现 128K 上下文窗口?
DeepSeek 如何实现 128K 上下文窗口?长文本处理技术揭秘 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 DeepSeek 如何实现 128K 上下文窗口?长文本处理技术揭秘摘要引言技术架构解析1. 动态…...
云计算简介:从“水电”到“数字引擎”的技术革命
云计算简介:从“水电”到“数字引擎”的技术革命 在当今数字化浪潮中,云计算早已从一个技术概念演变为支撑现代社会运转的核心基础设施。无论是你手机里的天气预报、电商购物的推荐系统,还是企业内部的ERP系统,背后都离不开云计算…...
计算圆周率 (python)
使用模特卡罗方法(模拟法),模拟撒点100000次,计算圆周率π 输入格式: 一个整数,表示随机数种子 输出格式: 计算的π值,结果小数点后保留5位数字 输入样例: 在这里给出一组输入。例如: 10…...

Python 实现图片浏览和选择工具
实现将截图预览,并按照顺序加入一个pdf文件中,实现照片管理尤其对于喜欢看教程截图做笔记的网友们。 C:\pythoncode\new\python-image-pdf-processor.py 界面展示 🧱 一、核心结构概述 主类 ImageViewer(wx.Frame) 是主窗口类,…...

Python实现的在线词典学习工具
Python实现的在线词典学习工具 源码最初来自网络,根据实际情况进行了修改。 主要功能: 单词查询 通过Bing词典在线获取单词释义(正则提取网页meta描述),支持回车键快速查询 内置网络请求重试和异常处理机制 在线网页…...
ES常识9:如何实现同义词映射(搜索)
在 Elasticsearch(ES)中实现同义词映射(如“美丽”和“漂亮”),核心是通过 同义词过滤器(Synonym Token Filter) 在分词阶段将同义词扩展或替换为统一词项,从而让搜索时输入任意一个…...

BGP综合实验(2)
一、实验需求 1、实验拓扑图 2、实验需求 使用 PreVal 策略,让 R4 经 R2 到达 192.168.10.0/24 。 使用 AS_Path 策略,让 R4 经 R3 到达 192.168.11.0/24 。 配置 MED 策略,让 R4 经 R3 到达 192.168.12.0/24 。 使用 Local Preference 策…...
java实现poi-ooxml导出Excel的功能
文章目录 1. 添加poi-ooxml依赖2. Excel导出工具类3.核心逻辑说明4.扩展建议5.HSSF、XSSF、SXSSF 的核心原则和场景建议,帮助你在不同需求下快速决策: 以下是一个基于 Apache POI 实现的简单、通用的Java导出Excel工具类,代码逻辑清晰且注释详…...

代码随想录算法训练营 Day51 图论Ⅱ岛屿问题Ⅰ
图论 题目 99. 岛屿数量 使用 DFS 实现方法 判断岛屿方法 1. 遍历图,若遍历到了陆地 grid[i][j] 1 并且陆地没有被访问,在这个陆地的基础上进行 DFS 方法,或者是 BFS 方法 2. 对陆地进行 DFS 的时候时刻注意以访问的元素添加访问标记 //…...

【占融数科-注册/登录安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

【CF】Day62——Codeforces Round 948 (Div. 2) CD (思维 + LCM + 枚举因数 | 思维 + 哈希)
C. Nikita and LCM 题目: 思路: 非常好的思维题,顺便复习了一下快速枚举因数和lcm的性质 我们先来看答案的上界,即全选,此时说明 lcm(a1,a2,a3,...) > a_max 其中 a_max 为 a 中最大的数,那么如果答案不…...

基于requests_html的python爬虫
前言:今天介绍一个相对性能更高的爬虫库requests_html,会不会感觉和requests有点联系?是的。为什么开始不直接介绍呢?因为我觉得requests是最基本入门的东西,并且在学习过程中也能学到很多东西。我的python老师在介绍这…...
循环神经网络:捕捉序列数据中的时间信息
目录 循环神经网络:捕捉序列数据中的时间信息 一、循环神经网络的基本概念 (一)RNN 的基本结构 (二)RNN 的工作原理 (三)RNN 的优势 (四)RNN 的局限性 二、循环神…...
第35周Zookkeeper+Dubbo 面试题精讲
面试题精讲 一、算法面试答题思路 理解思路的重要性:算法面试比基础面试更复杂,需先想清楚思路,与面试官沟通确认题目条件(如数据范围、是否包含负数/零等),这有助于理清解题思路并展示技术实力。变量命名清晰:算法中变量命名要明确含义和范围,避免使用模糊的变量名,…...
聊聊更新中断和更新事件那些事儿
最近在研究一些系统和设备的更新机制,发现更新中断和更新事件这两个概念很有意思,也容易让人混淆,今天就来和大家好好探讨一下。 一、更新事件 (一)定义与原理 更新事件,简单来说,是当出现某…...

STM32:按键模块 传感器模块 以及 相关C语言知识(详细讲解)
目录 按键 传感器模块 C语言知识 C语言数据类型 C语言宏定义 C语言typedef C语言结构体 C语言枚举 按键 常见的输入设备,按下导通,松手断开 按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬…...

C++23 std::mdspan:多维数组处理新利器
文章目录 引言C23简介std::mdspan的定义与特点定义特点 std::mdspan的优势零成本抽象的多维数据访问减少内存开销提高代码灵活性 std::mdspan的应用场景科学计算图形学 相关提案示例代码使用动态扩展使用静态和动态扩展 总结 引言 在C的发展历程中,每一个新版本都带…...

基于高德MCP2.0的智能旅游攻略系统设计与实现
前言:旅游规划的技术革命 在数字化旅游时代,MCP2.0(Map-based Collaborative Planning)系统代表着旅游攻略技术的最新演进。作为对1.0版本的全面升级,MCP2.0通过深度整合高德地图API和智能算法,实现了从静…...

【时时三省】(C语言基础)用函数实现模块化程序设计
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 为什么要用函数? 已经能够编写一些简单的C程序,但是如果程序的功能比较多,规模比较大,把所有的程序代码都写在一个主函数(main函数)中&#x…...

Flink流处理:实时计算URL访问量TopN(基于时间窗口)
目录 代码分析 背景知识拓展 代码调优 1. 性能优化 1.1 使用 KeyedStream 和 ProcessWindowFunction 替代 windowAll 1.2 使用 ReduceFunction 优化聚合 2. 功能扩展 2.1 支持动态窗口大小 2.2 支持多维度统计 2.3 支持持久化存储 3. 代码可读性 3.1 提取公共逻辑 …...
初识函数------了解函数的定义、函数的参数、函数的返回值、说明文档的书写、函数的嵌套使用、变量的作用域(全局变量与局部变量)
文章目录 一、什么是函数?二、函数定义与调用2.1 基本语法2.2 示例演示 三、函数参数详解3.1 位置参数3.2 默认参数3.3 可变参数3.4 关键字参数 四、返回值与文档说明4.1 返回多个值4.2 编写文档字符串 五、函数嵌套与作用域5.1 嵌套函数示例5.2 变量作用域5.3 glob…...
java collection集合特点知识点详解
在 Java 中,Collection 是所有集合类的根接口,它定义了一组对象的基本操作。Java 集合框架提供了丰富的实现类(如List、Set、Queue),具有以下核心特点: 一、统一的接口设计 1. 核心接口层次 Collection …...
ngx_http_realip_module 模块概述
一、使用场景 日志记录 记录真实客户端 IP 而非反向代理的 IP,有助于流量分析和安全审计。访问控制 基于真实 IP 实现防火墙规则(allow/deny)或限流,而非误将上游 IP 视为客户端。GeoIP、WAF、限速等功能 模块化的上游真实 IP 支…...
自定义CString类与MFC CString类接口对比
接口对比表格 功能分类 你的 CString 接口 MFC CString 接口(ANSI) 一致性 差异说明 构造函数 CString() CString(const char*) CString(char) CString(const CString&) CString() CString(LPCSTR) CString(TCHAR) CString(const CString&…...

华为OD机试真题——考勤信息(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…...

Go语言测试用例的执行与分析
在软件开发过程中,测试用例是确保代码质量的关键环节。Go语言作为一种现代的编程语言,它内置了强大的测试框架,可以帮助开发者轻松编写和执行测试用例。本文将介绍如何在 Go 语言中编写、执行测试用例,并对测试结果进行分析。 ## …...
vue3 vite 路由
如路由是这种格式 http://localhost:7058/admin/product/brand路由配置如下 import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vue import NProgress from nprogress; import nprogress/nprogress.css; import {errorRour…...