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

【C++】类和对象--一篇带你解决运算符重载实例--日期类

本篇文章我们将实现下面下面这些函数接口代码语言javascriptAI代码解释class Date { public: // 获取某年某月的天数 int GetMonthDay(int year, int month); // 全缺省的构造函数 Date(int year 1900, int month 1, int day 1); // 拷贝构造函数 //d2(d1) Date(const Date d); // 赋值运算符重载 // d2 d3 - d2.operator(d2, d3) Date operator(const Date d); // 析构函数 ~Date(); // 日期天数 Date operator(int day); // 日期天数 Date operator(int day); // 日期-天数 Date operator-(int day); // 日期-天数 Date operator-(int day); // 前置 Date operator(); // 后置 Date operator(int); // 后置-- Date operator--(int); // 前置-- Date operator--(); // 运算符重载 bool operator(const Date d); // 运算符重载 bool operator(const Date d); // 运算符重载 inline bool operator (const Date d); // 运算符重载 bool operator (const Date d); // 运算符重载 bool operator (const Date d); // !运算符重载 bool operator ! (const Date d); // 日期-日期 返回天数 int operator-(const Date d); private: int _year; int _month; int _day; };我们可以采用多文件的形式储存1. 全缺省的构造函数构造函数其实就是初始化的一个过程尤其注意的是对于日期的一个合法性的判断。但是因为月份的天数的细微差距这里调用一个GetMonthDay()函数接口来完成代码语言javascriptAI代码解释int Date::GetMonthDay(int year, int month) { assert(year 0 month 13 month0); //开辟一个静态区间用来解决不同月份的天数不同 static int monthDayAraay[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; if (month 2 isLeapYear(month)) { return 29; } return monthDayAraay[month]; }这里因为月份对应的天数是固定的所以我们选择将每个月的天数储存在一个静态数组中这样一来就可以做到一次的开辟之后可以进行多次的调用。同时因为二月天数收年份影响所以这里继续编写一个判断是都为闰年的函数接口isLeapYear()如果十二月份并且是闰年则直接返回29代码语言javascriptAI代码解释bool isLeapYear(int year) { return (year % 100 ! 0 year % 4 0) || (year % 400 0); }上面就是我们应该在构造函数中进行的日期是否合法的判断所以我们最终的构造函数应该是代码语言javascriptAI代码解释Date::Date(int year, int month, int day) { if (year 0 month 13 month0 day 0 day GetMonthDay(year,month)) { _year year; _month month; _day day; } else { cout 日期不合翻 endl; exit(-1); } }2. opeartor 判断两个日期是否相等很简单只需要将年月日的比较结果进行与逻辑判断即可代码语言javascriptAI代码解释bool Date::operator (const Date d) { return _year d._year _month d._month _day d._day; }3. operator 要想判断日期日期先比较year如果year小的话后面就无须比较了直接返回ture如果year相等就比较month如果month小的话后面也无须比较直接返回ture如果year、month都相等时最后才比较day如果day小直接返回ture

相关文章:

【C++】类和对象--一篇带你解决运算符重载实例--日期类

本篇文章我们将实现下面下面这些函数接口:代码语言:javascriptAI代码解释class Date { public:// 获取某年某月的天数int GetMonthDay(int year, int month);// 全缺省的构造函数Date(int year 1900, int month 1, int day 1);// 拷贝构造函数//d2(d1…...

【C++】类和对象--日期类Date补充及流提取、流插入

const成员1.1 const修饰类的成员函数在Date日期类中,我们实例化一个普通对象。而普通对象调用普通成员函数需要传参,传参传给隐藏的this指针,下面给出一个例子:代码语言:javascriptAI代码解释class Date { public:Date…...

【MySQL 的 ONLY_FULL_GROUP_BY 模式】

引言: 作为一个菜鸟,当写sql中涉及到group by这样简单的语句时,也会出现问题,我在牛客网上做sql题时,总报这个错:ONLY_FULL_GROUP_BY 到底是什么东西呢? 今天写篇文章解释一下。一、GROUP BY使用…...

**发散创新:基于Python的脉冲神经网络模拟与实时计算优化实践**

发散创新:基于Python的脉冲神经网络模拟与实时计算优化实践 在传统深度学习模型逐渐逼近性能瓶颈的今天,脉冲神经网络(Spiking Neural Networks, SNNs) 作为类脑计算的重要方向,正吸引越来越多研究者和工程师的关注。相…...

轻松掌握C语言中的大小写字母转换

在C语言中,大小写字母转换具有重要的实用价值。数据处理:在数据处理和文本处理中,经常需要将字符串中的大小写字母进行转换,以便进行比较、排序和输出等操作。当用户输入字符串时,为了统一格式或便于比较,可…...

# 虚拟世界中的编程艺术:用 Rust构建轻量级 3D 场景引擎 在虚拟世界的浪潮中,**开发

虚拟世界中的编程艺术:用 Rust 构建轻量级 3D 场景引擎 在虚拟世界的浪潮中,开发者不再只是代码的搬运工,而是数字宇宙的建筑师。近年来,Rust 因其内存安全、高性能和并发友好特性,成为构建下一代虚拟现实(…...

飞桨动态图超流畅

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 深度学习动态图的流畅性革命:全链路优化驱动AI普惠化目录深度学习动态图的流畅性革命:全链路优化驱动AI普…...

C++ 后端面试必刷大厂算法题(附代码实现)第十期

C 后端面试必刷大厂算法题 文章目录C 后端面试必刷大厂算法题一、295. 数据流的中位数二、三、四、五、六、七、八、九、十、十一、十二、十三、十四、十五、十六、十七、十八、十九、二十、总结一、295. 数据流的中位数 代码如下(示例): 二、…...

# SolidJS 发散创新:基于响应式状态的组件化 UI 架构实践与性能优化实战在前端开发领域,*

SolidJS 发散创新:基于响应式状态的组件化 UI 架构实践与性能优化实战 在前端开发领域,SolidJS 正以一种“轻量但强大”的姿态崛起,它不仅继承了 React 的 JSX 编程范式,还通过 细粒度响应式系统 实现了近乎原生性能的渲染机制。本…...

严肃面试官 vs 水货程序员谢飞机:大厂 Java 面试三轮连环拷问(附详细答案)

# 《严肃面试官 vs 水货程序员谢飞机:大厂 Java 面试三轮连环拷问(附详细答案)》> 人物: > > - **面试官**:语气平静、逻辑严密、对细节“零容忍”。 > - **谢飞机**:自称“全栈架构师&#xf…...

【2026年最新600套毕设项目分享】springboot房产租赁管理系统(14148)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】springboot躲猫猫书店管理系统(14147)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

无刷VS有刷:电站清洁机器人硬件选型破局,解锁运维效率新范式

全球新能源卷起来了!国内电站也在往规模化、智能化使劲儿,而清洁运维这事儿,早已不是“人工扫扫灰”那么简单,正从“人工辅助”直接升级为“全自主智能运维”。清洁机器人作为运维主力,性能好坏直接决定电站的效率、成…...

生成式人工智能驱动的网络钓鱼攻击演进与防御范式重构

摘要: 随着生成式人工智能(Generative AI)技术的爆发式增长,网络钓鱼攻击的生态格局发生了根本性变革。据行业数据显示,基于AI生成的钓鱼攻击数量在短期内激增了14倍,标志着网络威胁已从“劳动密集型”的手…...

如何训练表情识别情绪识别数据集 YOLO 格式数据集,覆盖 9 种面部表情:Angry(愤怒)、 Happy(快乐)、 Sad(悲伤)、 Surprised(惊讶)、 Fear(恐

智慧-表情识别情绪识别的 YOLO 格式数据集, 共包含约 70,000 张图像,覆盖 9 种面部表情:Angry(愤怒)、 Happy(快乐)、 Sad(悲伤)、 Surprised(惊讶&#xff0…...

深度剖析AI专著生成工具,开启高效专业学术专著撰写新体验

学术专著写作困境与AI辅助工具介绍 写作学术专著不仅是对学术素养的考验,还是对心理韧性的挑战。与论文写作可以依赖团队合作不同,专著的创作往往需要研究者独立完成。从选题、框架设计到内容创作和修改,几乎每一个环节都需要研究者一个人完…...

金刚石切割片选购指南:从科创研磨看国产刀具的技术突围

在工业制造与精密加工领域,金刚石切割片素有“工业牙齿”之称。面对市场上琳琅满目的品牌,无论是追求锋利度的石材加工厂,还是要求精密切割的电子产品车间,都会陷入同一个困惑:到底什么牌子的金刚石切割片质量比较好&a…...

基于 MATLAB 的改进带记忆模拟退火算法求解 TSP 问题

基于matlab的改进的带记忆的模拟退火算法求解TSP问题,采用多普勒型降温曲线描述迭代过程,在传统算法的基础上增加记忆功能,可测试中国31/64/144以及att48城市的数据,也可自行输入数据进行测试,测试结果基本达到当前最优…...

如何基于页面设计测试点(测试实习经验总结)

在实际测试工作中,经常会遇到这样的情况: 需求文档不完整没有明确测试用例只能看到产品页面 这时候测试人员就需要 基于页面和业务逻辑自行设计测试点。 这里总结一个简单实用的方法: 拿到页面,先问自己 5 个问题。一、拿到页面先…...

前端如何渲染 Markdown 格式:从基础到实战全指南

前端如何渲染 Markdown 格式:从基础到实战全指南(2026 最新版) 在现代 Web 开发中,Markdown 已成为内容创作的标准格式:博客、文档、评论、AI 输出、README 等场景随处可见。前端渲染 Markdown 的核心目标是&#xff…...

YOLOv11涨点改进| CVPR2026 |全网创新首发、Conv卷积改进篇 | 引入MSInit轻量级多尺度卷积,捕获局部细节和结构纹理信息,助力YOLOv11目标检测,图像分割,图像分类高效涨点

一、本文介绍 🔥本文给大家介绍利用MSInit轻量级多尺度卷积模块改进YOLOv11网络模型,MSInit模块为特征提取阶段提供更加丰富的 多尺度和多频率特征表示。该模块通过多尺度卷积分支生成不同感受野的特征响应,使网络能够同时捕获 局部细节信息与全局结构信息,从而增强模型对…...

空间栅格化(体素化)及射线选择原理

对于一个空间的多个primitive,栅格化是计算这些primitive的AABB包围盒bbox,定义或者估计x y z方向分割为多少栅格m n k例如bbox的x方向长度xh12.6 m3则分割的每个小栅格x方向长度xdxh/m4.2对于图元i,假设它的包围盒i.bbox的最小角点i.bbox.m…...

AI Agent 概念

由于基础大模型存在固有的局限性,无法直接解决实际应用中的问题,需要通过开发(即扩展能力)来弥补这些缺陷。AI Agent 大模型 扩展能力(Tool Memory RAG) 三大核心知识点: Tool(工…...

信创CMS推荐:PageAdmin性价比高!2026国产化网站建设选型指南

在众多信创CMS选项中,PageAdmin CMS 以其高度灵活性、强大的扩展能力和持续的信创适配能力,成为中小企业、教育机构及政府事业单位的热门选择。它不仅在功能上媲美主流商业CMS,更在信创国产化进程中展现出独特的优势。 核心优势与信创亮点 1、…...

探秘 FX3U 中定位与气缸的 FB 块:无密码的知识宝库

FX3U的定位和气缸的FB块,没有密码,可以随便直接调用修改 。 写法新颖,思路清晰,是敩习FB块很好的范 例。在自动化控制的世界里,三菱 FX3U 系列 PLC 一直是众多工程师的得力助手。今天咱们就来聊聊 FX3U 中定位和气缸相…...

Lua 5.4 语法与核心知识学习总结

> **学习时间**: 2026 年 3 月 14 日 > **文档来源**: https://lua.org/docs.html > **参考版本**: Lua 5.4 > **参考书籍**: 《Programming in Lua》(第一版) - Roberto Ierusalimschy---## 一、Lua 概述### 1.1 什么是 LuaLua 是一种**轻量、可嵌入、多范式**…...

【LangChain专栏】 Retrieval 入门:RAG核心原理与文档加载全解析

目录 引言 一、RAG与Retrieval模块核心认知 1.1 大模型幻觉与RAG的解决方案 1.2 RAG的核心优势与局限性 1.3 LangChain Retrieval完整流程拆解 二、Retrieval第一步:文档加载器(Document Loaders) 2.1 文档加载器的核心设计思想 2.2 主…...

【解决】RESP.app GUI for Redis 连接不上redis服务器

我的情况是:linux的防火墙端口没有开启可以使用 firewall-cmd --zonepublic --list-ports 查询开放了哪些防火墙端口 比如我的redis是使用6379端口。则我需要开放6379/tcp 操作如下: firewall-cmd --add-port6379/tcp --permanent firewall-cmd --reload…...

2026年塑料托盘粉碎机实力榜:TOP3厂家谁更胜一筹?

在再生资源加工领域,塑料托盘粉碎机作为核心设备,其性能直接影响企业产能与成本控制。据行业数据显示,2025年国内塑料回收市场规模突破1200亿元,但设备能耗高、故障率高、智能化不足等问题仍困扰超60%的从业者。本文基于技术参数、…...

Playwright添加 Trace 录制方法

Playwright添加 Trace 录制方法举例1、Trace 文件使用说明录制生成的 .zip 包可通过 Playwright CLI 查看:bashplaywright show-trace basic_test_trace.zip该命令会打开可视化界面,可逐步骤查看页面操作、网络请求、DOM 状态、截图等,便于调…...