当前位置: 首页 > news >正文

C++详细笔记(四)

1.类和对象

1.1拷贝构造函数(补充)

class Date{
public:int _year;int _month;int _day;
// 全缺省的构造函数Date(int year = 1900, int month = 1, int day = 1){_year = year;_month = month;_day = day;}
}
int main()
{Date d1(2024, 4, 14);Date d2(d1);Date d3 = d1;                 //拷贝构造Date d4(2024, 4, 15);         //赋值d1 = d4;return 0;
}

1.2运算符重载

运算符重载是 C++ 中的一项强大功能,它允许程序员重新定义已有的运算符,使其能够用于特定的类类型或自定义数据类型。

  1. 增强代码可读性

    • 通过运算符重载,可以使用熟悉的运算符来操作自定义类型的对象,使代码更加直观和易于理解。例如,对于一个表示复数的类,可以重载加法运算符+,使得两个复数的相加操作看起来就像对基本数据类型进行加法一样自然。
    • 对于自定义的容器类,可以重载下标运算符[],使得访问容器中的元素更加方便。
  2. 提高代码的可维护性

    • 当需要对自定义类型进行特定的操作时,使用运算符重载可以将这些操作封装在类的内部,而不是在类的外部使用一系列的函数调用。这样可以提高代码的封装性和可维护性。
    • 如果后续需要修改这些操作的实现,只需要在类的内部修改运算符重载函数即可,而不需要在整个代码中查找和修改相关的函数调用。
  3. 具有特殊函数名的函数。语法结构为:返回值类型 operator操作符()
  4. 不可以创造新的操作符。
  5. 必须要有一个类类型参数。
  6. 内置类型运算符,其含义不能改变。(编译器中不会将此报错,但是把加法硬要重载成减法怎么看也有点离谱)。
  7. .*  ::  sizeof  ?: . 五个操作符不能重载,其中.*运算符是帮助我们调用成员指针的。
/ 赋值运算符重载// d2 = d3 -> d2.operator=(&d2, d3)Date & operator=(const Date& d){
Date a;
this->_year = d._year;
this->_month = d._month;
this-> _day = d._day;
return *this;}
类外对输入输出流的重载
ostream& operator<<(ostream& output, Date& a)
{cout << a._year << "年" << a._month << "月" << a._day << "天" << endl;return output;
}
 ==运算符重载bool operator==(const Date& d)
{if (this->_year == d._year){if (this->_month == d._month){if (this->_day == d._day){return true;}else{return false;}}else{return false;}}else{return false;}
}//日期类举例

赋值运算符重载成全局函数,无this指针,需要两个参数。

函数指针与运算符重载各不相同,多个同一运算符重载可以构成函数重载。

一般成员函数重载为成员函数,输入流输出流最好重载为全局函数。

相关文章:

C++详细笔记(四)

1.类和对象 1.1拷贝构造函数&#xff08;补充&#xff09; class Date{ public:int _year;int _month;int _day; // 全缺省的构造函数Date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;} } int main() {Date d1(2024, 4, 14);Date d2(d1…...

架构师备考-背诵精华(系统架构评估)

系统架构评估是在对架构分析、评估的基础上&#xff0c;对架构策略的选取进行决策。它利用数学或逻辑分析技术&#xff0c;针对系统的一致性、正确性、质量属性、规划结果等不同方面&#xff0c;提供描述性、预测性和指令性的分析结果。 重要概念 敏感点&#xff1a;敏感点是…...

QT 实现自定义水波进度条

1.界面实现效果 以下是具体的项目需要用到的效果展示。 2.简介 原理:随着进度的改变,在我们的绘制图像void paintEvent(QPaintEvent *) override;事件中绘制图形。 使用QPainter来绘制正弦波,通过定时器,不断的更新我们绘制的图形,动态改变正弦波的参数来创建动画效果…...

厨房老鼠数据集:掀起餐饮卫生监测的科技浪潮

厨房老鼠数据集&#xff1a;掀起餐饮卫生监测的科技浪潮 摘要&#xff1a;本文深入探讨了厨房老鼠数据集在餐饮行业卫生管理中的重要性及其相关技术应用。厨房老鼠数据集通过收集夜间厨房图像、老鼠标注信息以及环境数据&#xff0c;为深度学习模型提供了丰富的训练样本。基于…...

Linux系统:more命令

1、命令详解&#xff1a; more命令是Linux系统中的一个文本查看器&#xff0c;它可以一次显示一页内容&#xff0c;并提供了一些方便的浏览操作&#xff0c;比如向下滚动、向上滚动、搜索等。当需要查看大型文件或长文本时&#xff0c;通过分页显示可以很好地避免一次性将整个文…...

ESP32-S3学习笔记:分区表(Partition Table)的二进制分析

一、参考资料 用于研究的官方示例代码&#xff1a;esp-idf-v5.3\examples\storage\partition_api\partition_find参考的官方文档&#xff1a;ESP-IDF编程指南&#xff1a;分区表 二、准备工作 用VS Code打开示例代码&#xff0c;打开示例代码的CSV自定义分区表&#xff0c;如…...

04,perl

1 &#xff0c;作用 &#xff1a; 2 &#xff0c;原理 &#xff1a; 3 &#xff0c;使用场景 &#xff1a;...

Js 更加优雅地实现Form表单重置

文章目录 前言代码实现代码优化 前言 最近在做一个后台项目 不免大量使用表单 表单查询 编辑 还原 导入导出 不免要经常实现 记录下表单重置的一些方法 代码实现 <div class"Query"><el-form :model"ruleForm" ref"ruleFormref" labe…...

基于微信小程序的驾校预约系统设计与实现

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图文章目录 前言 文章底部名片&#xff0c;获取项目的完整演示视频&#xff0c;免费解答技术疑问 项目介绍 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不…...

利用python进行数据处理,得到对自己有利的内容

一&#xff0c;介绍 在2025年的公务员录取信息发布后&#xff0c;许多考生和求职者可能会感到困惑&#xff0c;尤其是在面对庞大的职位列表时&#xff0c;如何快速找到适合自己的职位成为了一个亟待解决的问题。面对这样的问题&#xff0c;以下几点建议或许能够帮助大家更有效地…...

Java面试题五

一、谈谈你对Java内存模型&#xff08;JVM Memory Model&#xff09;的理解。 Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;是Java虚拟机&#xff08;JVM&#xff09;规范中定义的一种关于内存访问、共享变量在多线程之间的可见性、以及原子性、…...

2013 lost connection to MySQL server during query

1.问题 使用navicat连接doris&#xff0c;会有这个错误。 2.解决 换低版本的navicat比如navicat11。...

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-1

文件下载与邀请翻译者 学习英特尔开发手册&#xff0c;最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册&#xff0c;会是一件耗时费力的工作。如果有愿意和我一起来做这件事的&#xff0c;那么&#xff…...

Android便携式WLAN热点分析

Android便携式WLAN热点分析 Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 Android便携式WLAN热点分析分析Android开启WLAN热点的路由策略和防火墙便携式WLAN热点开启流程路由表路由策略iptables(防火墙) 用hostapd命令手动开启WLAN热点1.加载驱动2.配置wlan0 …...

从经济学原理看团队分工合作

最近我接触到一个经济学概念叫"比较优势"。学过经济学的同学应该很熟悉&#xff0c;但为了让不了解经济学的朋友们也能明白&#xff0c;我们先来解释下什么是比较优势&#xff0c;然后再谈谈为什么我认为这个原理应当被用在团队合作的分工当中。 比较优势是19世纪初…...

企业一级流程架构规划方法

在之前关于企业业务流程规划的系列文章中&#xff0c;我们已经分别对企业业务流程规划的价值和原则、企业的业务流程架构的应用、两种常见的企业总体业务流程架构模式等进行了比较深入的分析和阐述&#xff0c;相信大多数企业同仁&#xff0c;已经对企业的业务流程规划&#xf…...

用ESP32驱动stt7735 TFT屏幕

操作流程&#xff1a; 1 在esp32项目中搜索TFT库 2 找到对应TFT_eSPI库&#xff0c;添加进所在项目中&#xff08;这里可能下载很久&#xff09; 3 找到对应屏幕文件下的User_Setup.h 修改&#xff0c;将驱动换成ST7735_DRIVER&#xff0c;并修改对应屏幕引脚和屏幕尺寸&…...

Yolo目标检测:Yolo v1简介

一、Yolo系列介绍 YOLO&#xff08;You Only Look Once&#xff09;是一种基于深度学习的目标检测算法&#xff0c;由Joseph Redmon等人于2016年提出。它的核心思想是将目标检测问题转化为一个回归问题&#xff0c;通过一个神经网络直接预测目标的类别和位置。YOLO算法将输入图…...

Java動態轉發代理IP詳解

Java中實現動態轉發代理IP 在Java中實現動態轉發代理IP並不複雜&#xff0c;通常可以通過一些開源庫和框架來實現。下麵是一個簡單的實現思路&#xff1a; 設置HTTP請求&#xff1a;在Java中&#xff0c;可以使用HttpURLConnection或Apache HttpClient來發送HTTP請求。在發送…...

Android15之解决gdb:Remote register badly formatted问题(二百三十六)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…...

MogFace-large模型版本管理实践:使用Docker镜像实现环境一致性

MogFace-large模型版本管理实践&#xff1a;使用Docker镜像实现环境一致性 你是不是也遇到过这样的场景&#xff1f;在本地电脑上跑得好好的MogFace-large人脸检测模型&#xff0c;一放到同事的机器或者服务器上&#xff0c;就各种报错&#xff1a;CUDA版本不对、Python包冲突…...

无源光网络-PON

一、无源光网络-PON简介1.1 无源光网络定义无源光网络&#xff08;PON&#xff09; 是一种点到多点的光纤接入技术&#xff0c;全程采用无源光器件&#xff08;光分路器、光纤、光接头等&#xff0c;无电源、无电子电路&#xff09;实现信号传输。1.2 核心要点1.2.1 特点无源&a…...

UABEA:解锁Unity资源编辑新维度的跨平台工具箱

UABEA&#xff1a;解锁Unity资源编辑新维度的跨平台工具箱 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 你是否曾想过深入Unity游戏内部&#xff0c;查看、编辑甚至重构其中的纹理、音频、字体等各类…...

4大模块构建企业级专利智能分析平台:基于Google Patents Public Data的深度技术解析

4大模块构建企业级专利智能分析平台&#xff1a;基于Google Patents Public Data的深度技术解析 【免费下载链接】patents-public-data Patent analysis using the Google Patents Public Datasets on BigQuery 项目地址: https://gitcode.com/gh_mirrors/pa/patents-public-…...

终极指南:如何轻松提取Xbox Game Pass游戏存档,实现跨平台无缝迁移

终极指南&#xff1a;如何轻松提取Xbox Game Pass游戏存档&#xff0c;实现跨平台无缝迁移 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor …...

到底要不要用AI写代码?别争了

其实我一直觉得&#xff0c;现在大家讨论 AI 写代码这件事&#xff0c;有点熟悉。因为以前我们也是这么过来的。刚开始写代码那会儿&#xff0c; 不会就打开 百度&#xff0c; 一行一行找答案&#xff0c;复制、试错、再改。一个分号错了能找半天&#xff0c; 中英文标点混了直…...

快速SEO排名服务需要多长时间见效_快速SEO排名服务有哪些常见的手段

快速SEO排名服务需要多长时间见效 在当今数字化时代&#xff0c;网站的在线可见度对于企业的成功至关重要。快速SEO排名服务应运而生&#xff0c;旨在帮助企业尽快在搜索引擎上获得更好的排名&#xff0c;从而提高流量和业务。但是&#xff0c;很多人都会疑惑&#xff0c;快速…...

SEO_资深专家分享的3个高级SEO策略与思路

SEO资深专家分享的3个高级SEO策略与思路 在当今竞争激烈的数字营销环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;不仅仅是一个技术问题&#xff0c;更是一个战略问题。作为一名资深SEO专家&#xff0c;我有幸分享三个高级SEO策略&#xff0c;帮助你在竞争中脱颖…...

HAL_NVIC

文章目录一、NVIC简介   NVIC 做什么&#xff1f;二、NVIC模块详解   1、NVIC 寄存器   2、优先级的定义     1.优先级寄存器NVIC_IPRx     2.优先级分组3、NVIC 工作完整流程   4、F103中断向量表     1.内核异常向量&#xff08;固定&#xff0c;所有 CM…...

Phi-4-mini-reasoning GPU算力极致利用:单卡并发16路推理压测报告

Phi-4-mini-reasoning GPU算力极致利用&#xff1a;单卡并发16路推理压测报告 1. 模型简介 Phi-4-mini-reasoning是一个轻量级开源模型&#xff0c;专注于高质量推理任务。作为Phi-4模型家族成员&#xff0c;它具备以下核心特点&#xff1a; 推理能力优化&#xff1a;基于合…...