编程语言
文章平均质量分 91
编程语言的学习内容
我爱学习yyds
欢迎学习交流C,C++,数据结构,Python,Linux,共同进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++核心之多线程
本文全面介绍了C++高并发编程的核心技术,包括四种线程创建方式(普通函数、带参函数、类成员函数和Lambda表达式)、三种线程同步机制(互斥锁、RAII锁和条件变量)以及原子操作和无锁队列的实现。重点讲解了基于std::atomic的无锁队列设计,通过CAS操作实现高性能并发访问。文章强调应根据实际场景合理选择同步方案:简单场景使用锁机制保证安全,高并发场景采用无锁结构优化性能。原创 2026-04-02 17:28:08 · 8357 阅读 · 8 评论 -
实现简化的高性能并发内存池
本文介绍了一种高性能并发内存池的设计与实现,针对标准库malloc在多线程环境下的性能瓶颈(锁竞争、系统调用开销、内存碎片)提出了三层缓存架构解决方案。该设计包含ThreadCache(线程无锁缓存)、CentralCache(中心协调缓存)和PageCache(页管理缓存),通过分层解耦和反馈调节机制实现高效内存管理。关键优化包括:慢启动算法动态调整批量大小、基数树替代哈希表实现O(1)查找、桶锁机制减少竞争、Span合并降低碎片等。测试表明其性能较malloc提升2.7倍,核心思想是通过空间换时间和缓存原创 2026-03-29 17:10:31 · 7653 阅读 · 10 评论 -
单例模式( 饿汉式与懒汉式 )
本文深入解析了单例模式的两种经典实现方式。饿汉式在类加载时即创建实例,实现简单且线程安全,但可能造成内存浪费;懒汉式延迟初始化,按需创建实例,灵活性高但需处理线程安全问题。文章通过C++和Java代码示例对比了两者的特点,指出饿汉式适合实例小、使用频繁的场景,懒汉式适合实例大、使用率低的场景,并给出了线程安全的最佳实践方案(如双检锁、静态内部类)。最后强调应根据实际需求选择实现方式,避免单例模式的滥用。原创 2026-03-21 21:11:07 · 9003 阅读 · 9 评论 -
Java入门( 日期类与 BigDecimal 工具类 )
本文详细解析Java开发中日期时间处理和高精度数值运算的核心工具类。日期时间处理方面,推荐使用Java8引入的LocalDateTime替代过时的Date类,其具备线程安全、无偏移等优势,支持创建、解析、字段获取、运算调整等操作。高精度运算方面,BigDecimal类能有效避免double/float的精度丢失问题,需注意使用字符串构造方法创建对象,除法运算必须指定精度和舍入模式。两者均为不可变类,天生线程安全,是提升代码健壮性的必备工具。掌握这些工具类的正确用法能规避开发中的常见问题,提高代码质量。原创 2026-03-21 18:23:06 · 8411 阅读 · 12 评论 -
Java入门( 异常 )
本文系统介绍了Java异常处理的核心知识,包括异常概念、体系结构、处理方式和自定义实现。首先解析了Java异常分类(Error、Checked/Unchecked Exception)及继承关系,详细讲解了throw、throws、try-catch-finally五大关键字的用法。通过用户登录等实例演示了EAFP异常处理思想,分析了异常传播流程,并指导如何创建贴合业务的自定义异常。文章还总结了异常处理最佳实践,如避免捕获所有异常、及时释放资源等。掌握这些知识能帮助开发者编写更健壮的代码,提升程序容错能力。原创 2026-03-20 23:05:01 · 9587 阅读 · 22 评论 -
Java入门(String类)
本文全面解析Java中String类的核心知识点,涵盖创建方式、常量池机制、不可变性原理及高效操作方法。String作为最常用的类,其设计目标包括封装性、安全性、易用性和高效性。文章详细对比了4种创建方式的内存差异,剖析了字符串常量池的优化原理,并强调不可变性带来的线程安全、哈希稳定等优势。针对开发常见问题,提供了字符串比较、类型转换、替换拆分等实用API示例,重点指出循环拼接时应使用StringBuilder以避免性能问题。最后通过3道经典面试题巩固理解,总结出优先使用字面量、内容比较用equals()、原创 2026-03-19 15:37:48 · 8949 阅读 · 5 评论 -
Java入门(抽象类 与 接口)
本文深入讲解了Java面向对象编程中的三个核心机制:抽象类、接口和Object类。抽象类作为模板类,通过抽象方法强制子类实现特定功能,体现is-a关系;接口定义行为规范,支持多实现弥补单继承限制,体现has-a关系。Object类作为所有类的根类,提供了toString()、equals()、hashCode()等基础方法。文章详细对比了抽象类和接口的区别,阐述了各自的使用场景,并通过丰富代码示例演示了如何正确使用这些特性。掌握这些知识点对编写高质量、可扩展的Java代码至关重要,也是面试中的高频考点。原创 2026-03-18 12:40:06 · 9592 阅读 · 11 评论 -
Java入门(多态)
本文全面解析Java多态的核心概念与应用。多态是面向对象编程的三大特性之一,指同一方法在不同对象上呈现不同行为。实现多态需满足三个条件:继承/实现关系、方法重写、父类引用指向子类对象。文章通过动物叫声案例演示多态实现,详细讲解方法重写规则、向上/向下转型操作,并分析静态绑定与动态绑定的底层原理。同时总结了多态降低代码复杂度、提高扩展性等优点,以及构造方法中调用重写方法的避坑指南。最后通过USB设备案例展示接口实现多态的方式,强调多态是面向抽象编程的重要体现。原创 2026-03-17 20:31:06 · 6323 阅读 · 1 评论 -
Java入门(继承)
本文系统讲解了Java继承机制,包括其核心概念、语法规则及实际应用。继承通过extends关键字实现代码复用,子类可访问父类非私有成员,使用super调用父类构造方法。文章详细解析了成员访问规则、初始化顺序、访问修饰符(特别是protected)的作用,对比了继承与组合的适用场景(is-a vs has-a关系),并指出final关键字可限制继承。通过完整代码示例,展示了如何正确使用继承构建类层次结构,避免代码冗余,同时强调了组合优先的原则以降低耦合性。继承作为面向对象三大特性之一,为多态奠定了基础,是Ja原创 2026-03-17 13:27:13 · 5232 阅读 · 4 评论 -
Java入门(类和对象)
本文系统介绍了Java面向对象编程中类和对象的核心概念与应用。首先阐述了面向对象的基本思想及其与面向过程的区别,重点讲解了类的定义格式、对象实例化方法及this关键字的使用场景。随后详细解析了对象的三种初始化方式(默认、就地、构造方法)及执行顺序,并介绍了toString方法重写技巧。文章还深入探讨了包的组织结构、封装特性实现及其优势,以及static关键字对共享成员的修饰作用。最后总结了代码块(普通、实例、静态)的初始化机制和执行顺序,强调静态代码块在类加载时的关键作用。通过丰富的代码示例,全面展示了面向原创 2026-03-16 21:51:36 · 2425 阅读 · 0 评论 -
Java 入门(IDEA 高效调试 与 数组)
本文系统讲解了Java开发中的调试技巧与数组知识。调试部分详细介绍了IDEA调试器的使用,包括基础断点设置、执行控制快捷键、条件断点等核心功能。数组部分从基础概念讲起,涵盖创建、初始化、遍历、引用特性等核心知识点,并重点讲解了Arrays工具类的常用方法(排序、查找、拷贝等)。文章还提供了经典算法实现(顺序查找、二分查找、冒泡排序等)和实战调试技巧,帮助开发者提升排错效率和代码质量。适合Java开发者系统学习或快速回顾数组与调试的核心技能。原创 2026-03-16 17:07:44 · 2226 阅读 · 2 评论 -
Java 入门(输入输出 与 方法)
本文全面介绍了Java基础编程中的控制台输入输出、方法使用和递归等核心知识点。主要内容包括:1)三种控制台输出方式(println/print/printf)的使用场景和示例;2)Scanner类实现键盘输入的完整步骤及常见问题解决方案;3)方法定义、调用和重载的规范写法;4)递归的基本原理和注意事项。文章通过大量代码示例演示了猜数字游戏、求平均值、阶乘计算等实用案例,帮助初学者快速掌握Java基础编程技巧,为后续学习打下坚实基础。原创 2026-03-16 10:43:20 · 2369 阅读 · 1 评论 -
Java 入门(运算符 与 逻辑控制)
摘要:本文系统讲解Java运算符和程序逻辑控制两大基础内容。运算符部分重点解析算术、自增、关系、逻辑等常用运算符的使用技巧和常见陷阱;程序逻辑控制部分详细介绍顺序、分支(if-else、switch)和循环(for、while)三种基本结构的使用场景和注意事项。文章强调掌握这些基础知识对后续Java学习的重要性,并提供多个实践案例帮助巩固知识点,如判断奇偶、计算阶乘等,为初学者打下扎实的编程基础。原创 2026-03-16 09:40:59 · 2175 阅读 · 1 评论 -
C++ string 类从原理到实战
本文系统梳理C++中string类的核心知识体系。首先解析深浅拷贝原理,指出string默认采用深拷贝确保安全性;其次通过模拟实现MyString类,详细展示构造析构、运算符重载、迭代器等关键功能;然后深入讲解标准库string的常用函数、容量管理和类型转换;最后结合字符串数字相加案例,演示如何利用迭代器和算法处理实际问题。全文从底层原理到应用实践,构建了完整的string类知识框架,为C++字符串编程提供全面指导。原创 2026-03-11 17:23:04 · 11265 阅读 · 6 评论 -
C++编程学习笔记:函数相关特性、引用与编译流程
在深入学习C++编程的过程中,函数特性、引用机制以及编译流程都是极为关键的知识点。通过学习,我对这些内容有了更为透彻的理解,在此进行详细梳理与记录。原创 2025-03-29 13:48:35 · 1799 阅读 · 16 评论 -
红黑树解析
红黑树是一种自平衡的二叉搜索树,通过节点颜色(红或黑)和一系列性质确保树的近似平衡,从而在插入、删除和查找操作中保持高效。本文详细介绍了红黑树的概念、性质、节点定义与结构,并重点探讨了其插入操作的实现步骤,包括按照二叉搜索树规则插入新节点以及通过旋转和变色修复红黑树性质。此外,文章还展示了红黑树在C++标准模板库(STL)中模拟实现map和set容器的应用,通过红黑树的高效特性,这些容器能够快速、有序地存储和访问数据。通过深入理解红黑树的原理和实现,读者可以更好地应用这一数据结构解决实际问题。原创 2025-05-15 22:50:57 · 1006 阅读 · 26 评论 -
C++ vector 核心功能解析与实现
我们实现的 vector 类模板主要包含以下几个关键部分:1. 数据成员:用于管理动态数组的内存和元素范围。2. 赋值运算符重载:实现对象之间的赋值操作。3. 下标运算符重载:支持通过 [] 访问元素。4. 内存管理函数: reserve 和 resize 用于控制动态数组的容量和大小。5. 元素访问函数: front 和 back 用于获取容器的首元素和尾元素。原创 2025-04-21 16:34:32 · 1342 阅读 · 26 评论 -
C++模板初阶:从概念到实践
要点格式为 template<class T1, class T2, ……, class Tn> ,class 类模板名 { // 类内成员定义 }。类模板中函数在类外定义时,需加模板参数列表。易错点类外定义函数忘记加模板参数列表;定义类模板时语法错误。代码示例cpp// 动态顺序表类模板public:, _size(0)~Vector();// 类模板中函数在类外定义,需加模板参数列表。原创 2025-04-12 01:02:36 · 965 阅读 · 17 评论 -
哈希的原理、实现
哈希是一种在计算机科学中广泛应用的数据结构和算法思想,主要用于提高数据存储和查找的效率。本文详细探讨了哈希的基本原理、哈希函数的设计原则及常见类型(如直接定址法、除留余数法等),并介绍了哈希冲突的解决方法,包括闭散列(如线性探测和二次探测)和开散列(链地址法)。此外,文章还结合C++代码示例,展示了如何实现哈希表及其在unordered_map等关联式容器中的应用。哈希技术在海量数据处理、缓存系统和数据库索引等领域具有重要应用,合理使用哈希可以显著提升程序性能。通过本文,读者可以更深入地理解哈希的原理及其在原创 2025-05-17 18:09:29 · 2004 阅读 · 21 评论 -
深入探索C++ STL:从基础到进阶
STL(standard template library - 标准模板库)是C++ 标准库的重要组成部分。它就像是一个工具箱,里面装满了各种数据结构(如vector、list、map等)和算法(如sort、find等)。以下是一个简单使用 vector 容器的示例代码:cpp// 创建一个vector容器,用于存储int类型的数据// 向容器中添加元素// 遍历容器并输出元素++i) {return 0;难点剖析这里涉及到模板的概念,模板使得STL能够适应不同的数据类型。原创 2025-04-12 14:45:51 · 1427 阅读 · 13 评论 -
特殊类的设计
本文探讨了C++中特殊类的设计技巧,包括控制对象创建方式(仅堆/仅栈实例化)、限制类行为(禁止拷贝、不可继承)和实现单例模式(饿汉/懒汉)。通过构造函数私有化、运算符禁用和静态成员函数等方法,可以精准控制对象创建位置和类行为。单例模式采用饿汉式(线程安全)或懒汉式(双检查锁优化)实现全局唯一实例。这些技巧能有效提升代码的健壮性和设计合理性,在框架开发和资源管控等场景中具有重要应用价值。原创 2025-11-21 21:36:33 · 15166 阅读 · 7 评论 -
C++的核心--继承
本文系统探讨了C++中的继承机制,重点分析了继承的核心概念与关键问题。文章首先阐述继承的定义和三种继承方式,详细讲解基类和派生类对象间的赋值转换规则,包括安全的向上转型和风险性的向下转型。随后深入剖析继承中的作用域、派生类默认成员函数、友元关系和静态成员特性。针对多继承带来的复杂性,文章详细讨论了菱形继承问题及其解决方案——虚拟继承的实现原理。最后总结继承的优缺点,建议谨慎选择继承与组合,并强调继承在构建类层次结构和实现多态中的价值。全文全面覆盖C++继承机制,为理解和应用这一重要特性提供了系统指导。原创 2026-03-04 15:49:13 · 10181 阅读 · 11 评论 -
C++ 内存管理与单例模式剖析
本文探讨了C++中特殊内存管理方式和单例模式的实现方法。首先介绍了HeapOnly类,通过私有构造函数和删除拷贝操作确保对象只能在堆上创建;其次讲解了StackOnly类,通过删除operator new强制对象只能在栈上分配。随后详细分析了单例模式的两种实现:饿汉模式在程序启动时即创建单例对象,实现简单但影响启动速度;懒汉模式延迟创建对象,但需处理多线程安全问题,并可通过GC类确保资源释放。这些技术为C++开发者提供了内存管理和设计模式的重要实践参考,需根据具体场景选择合适方案。原创 2025-05-24 15:48:49 · 9332 阅读 · 6 评论 -
C++类的特殊成员函数:构造、拷贝构造与析构函数详解
在C++ 编程中,类的特殊成员函数扮演着至关重要的角色,它们负责对象的创建、复制以及销毁过程。本文将深入探讨构造函数、拷贝构造函数和析构函数的概念、特性及应用场景,并结合代码示例进行详细说明。 1. 概念构造函数是一个特殊的成员函数,名字与类名相同。在创建类类型对象时由编译器自动调用,主要任务是初始化对象的数据成员,确保每个数据成员都有一个合适的初始值,并且在对象的整个生命周期内只调用一次。 2. 特性 - 函数名与类名相同:这是构造函数的显著特征,通过函数名就能明确它所属的类。 - 无返原创 2025-04-04 14:24:11 · 1639 阅读 · 16 评论 -
C++类与对象进阶知识深度解析
友元关系是单向的,不具有交换性。比如上述 Time 类和 Date 类,在 Time 类中声明 Date 类为其友元类,那么可以在 Date 类中直接访问 Time 类的私有成员变量,但想在 Time 类中访问 Date 类中私有的成员变量则不行。因为对于自定义类型成员变量,即使在构造函数体中赋值,编译器也会先使用默认构造函数初始化,再进行赋值操作,而初始化列表可以直接调用合适的构造函数初始化。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明。原创 2025-04-08 23:12:33 · 1286 阅读 · 22 评论 -
深入探究C++ 中的stack、queue和deque
C++中 deque 的注意事项及示例:1. 迭代器失效:在 deque 中插入或删除元素后,除了指向被删除元素的迭代器外,其他迭代器可能仍然有效,但可能会导致迭代器重新定位。cpp// 插入元素后,迭代器it仍然有效return 0;1. 容量和内存管理: deque 的内存管理相对复杂,它通过分段连续内存实现。与 vector 相比, deque 在头部插入和删除元素更高效,因为不需要移动大量元素来调整内存。cppi < 10;++i) {原创 2025-04-28 15:01:16 · 1598 阅读 · 27 评论 -
深入理解位图(Bit - set):概念、实现与应用
位图(Bit-set)是一种高效的数据结构,特别适用于处理海量数据的存在性判断和统计。其基本原理是通过二进制位来表示数据的状态,1表示存在,0表示不存在。位图适用于快速查找、数据去重、统计、集合操作(如交集、并集)以及操作系统中的磁盘块标记等场景。通过C++代码示例,展示了位图的实现及其在快速查找、排序去重、集合操作和磁盘块标记中的具体应用。位图通过减少时间和空间复杂度,显著提升了数据处理的效率,是处理大规模数据时的有力工具。原创 2025-05-18 22:20:15 · 1646 阅读 · 28 评论 -
深入理解C++ 中的vector容器
vector 是表示可变大小数组的序列容器。它采用连续存储空间来存储元素,这使得我们可以像操作数组一样,通过下标高效地访问元素。与普通数组不同的是, vector 的大小能够动态改变,容器会自动处理内存管理相关事宜。从本质上讲, vector 使用动态分配数组来存储元素。当新元素插入时,如果当前空间不足,它会分配一个新的数组,并将全部元素迁移到新数组中。虽然这个过程相对耗时,但 vector 并非每次插入新元素都进行这样的操作,以平衡效率。原创 2025-04-19 16:04:07 · 1265 阅读 · 20 评论 -
深入理解C++ 中的list容器
list 的底层是双向链表结构。每个元素存储在独立的节点中,节点通过指针指向前一个元素和后一个元素 ,并且是带头结点的双向循环链表。这意味着在链表中,头结点可以作为一个哨兵节点,方便进行插入和删除操作,同时循环的特性使得从链表的尾部可以无缝连接到头部。cppT data;list 容器凭借其独特的双向链表结构,在插入和删除操作上具有高效性,适用于需要频繁进行这些操作的场景。原创 2025-04-25 21:44:47 · 1501 阅读 · 23 评论 -
深入探索C++:从基础到实践
C++ 是一门极具魅力且功能强大的编程语言,它的语法特性丰富,发展历程悠久且持续演进,在众多领域都有着广泛应用。通过遵循合理的学习路径,从基础逐步深入到高级特性,再到对语言底层原理和研究拓展,开发者能够不断提升自己的 C++ 编程能力,在不同的项目场景中发挥 C++ 的优势,创造出优秀的软件作品。无论是新手入门还是有经验的开发者进一步提升,C++ 都有着无尽的知识宝藏等待我们去挖掘和探索。原创 2025-03-27 22:58:42 · 1497 阅读 · 18 评论 -
二分查找习题
本文总结了二叉树相关问题的解题思路与实现方法,主要包括:二叉搜索树转双向链表:利用中序遍历特性,调整指针构建有序双向链表。二叉树转字符串:通过前序遍历,处理空节点并拼接字符串,确保二叉树与字符串的一一映射。二叉树的最近公共祖先:通过递归回溯或路径记录,找到深度最大的公共祖先节点。二叉树前序遍历:使用栈模拟递归,按根-左-右顺序遍历节点。二叉树中序遍历:借助栈实现左-根-右的遍历顺序,确保节点值按序记录。二叉树后序遍历:采用双栈法或单栈标记法,实现左-右-根的遍历顺序。每种方法均结合C++代码原创 2025-05-07 22:24:51 · 614 阅读 · 20 评论 -
AVL树解析
这段代码实现了一个AVL树的插入操作及其平衡维护机制。AVL树是一种自平衡二叉搜索树,通过旋转操作保持树的平衡。插入操作首先检查树是否为空,若为空则直接创建根节点。否则,通过遍历树找到合适的插入位置,并插入新节点。插入后,代码通过更新节点的平衡因子来检查树的平衡状态。如果平衡因子超出允许范围(2或-2),则进行相应的旋转操作(左旋、右旋、右左双旋或左右双旋)以恢复平衡。旋转操作调整了树的结构,并更新了相关节点的平衡因子。最终,插入操作返回true表示成功插入,或false表示插入失败(如遇到重复键值)。代码原创 2025-05-11 22:27:47 · 7610 阅读 · 21 评论 -
布隆过滤器
布隆过滤器是一种高效的概率型数据结构,由Burton Howard Bloom在1970年提出,主要用于解决海量数据的存储和快速查询问题。它通过多个哈希函数将数据映射到位图结构中,实现高效的插入和查询操作。布隆过滤器的优点包括高查询和插入效率、节省内存空间、支持集合运算等,但也存在误判、无法获取元素本身和不支持直接删除等缺点。其应用场景广泛,如网页爬虫的URL去重、数据库中的数据判重和垃圾邮件过滤等。尽管有局限性,布隆过滤器在大数据处理等领域仍具有重要价值。原创 2025-05-19 17:16:41 · 1245 阅读 · 24 评论 -
C++类与对象(上):从入门到实践
cpppublic:// 公有成员函数和变量,在类外可以直接访问protected:// 保护成员函数和变量,类及其派生类可以访问private:// 私有成员函数和变量,仅在类内部可以访问需要注意的是,类定义结束时后面的分号不能省略。在类体中,包含的内容称为类的成员:其中的变量称为类的属性或成员变量;其中的函数称为类的方法或成员函数。类有两种常见的定义方式:1. 声明和定义全部放在类体中:将成员函数的声明和定义都写在类体内部。cpppublic:// 初始化日期函数。原创 2025-04-02 01:36:42 · 1540 阅读 · 20 评论 -
C++模板知识
一个程序(项目)由若干个源文件共同实现,每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件,这种模式就是分离编译模式。1. 模板复用了代码,节省资源,能实现更快的迭代开发,C++的标准模板库(STL)就是基于模板产生的。2. 增强了代码的灵活性,能适应多种数据类型。原创 2025-05-02 17:16:45 · 1048 阅读 · 11 评论 -
C++ 关联式容器:map,multimap,set,multiset
本文详细介绍了C++标准模板库(STL)中的关联式容器,包括set、map、multiset和multimap。关联式容器通过键值对存储数据,提供了高效的检索功能,底层通常采用红黑树等平衡搜索树实现。set和map分别用于存储唯一元素和键值对,而multiset和multimap则允许重复元素。文章还探讨了这些容器的特性、模板参数、常用接口及使用示例,帮助读者理解其应用场景和底层实现,从而在实际编程中更高效地使用这些容器。原创 2025-05-10 17:50:54 · 1311 阅读 · 21 评论 -
C++ 中日期类的输入输出操作符重载实践
通过重载输入输出操作符,我们让自定义的 Date 类在输入输出操作上具有和内置类型相似的便利性。在实际项目中,这种操作符重载的技巧可以应用到各种自定义数据类型上,极大地提高代码的可读性和易用性。同时,在实现过程中要注意错误处理和代码的健壮性,以便在不同的输入情况下都能正确运行。原创 2025-04-07 21:06:05 · 1442 阅读 · 14 评论 -
C/C++内存管理:从基础到进阶
对于自定义类型(如类), new 会调用构造函数, delete 会调用析构函数。// 仅分配内存,未调用构造函数// 分配内存并调用构造函数free(p1);// 未调用析构函数delete p2;// 调用析构函数并释放内存return 0;要点:使用 new 和 delete 时要注意配对使用,申请和释放单个元素用 new 和 delete ,申请和释放数组用 new[] 和 delete[]原创 2025-04-10 20:14:03 · 1414 阅读 · 15 评论 -
优先级队列
cpp// 优先级队列模板类// T: 元素类型// X: 底层存储容器类型,默认使用std::vector// Compare: 比较器类型,默认使用Lessprivate:X _con;// 底层存储容器// 堆调整函数声明public:// 构造函数、插入、删除等成员函数声明void pop();通过模板参数 T 、 X 和 Compare ,我们实现了类型、容器和比较规则的高度可定制化。原创 2025-04-30 18:29:39 · 1167 阅读 · 26 评论 -
深入探究C++ 运算符重载:以日期类为例
在C++ 编程中,运算符重载是一项强大且实用的特性,它允许我们赋予运算符在自定义类上的新含义,极大地增强了代码的可读性和易用性。今天,我们就以日期类( Date )为例,深入探讨运算符重载的相关知识。cpppublic:// 获取某年某月的天数day += 1;return day;// 全缺省的构造函数// 拷贝构造函数// 赋值运算符重载if (this!= &d) {// 析构函数~Date() {}原创 2025-04-06 12:47:22 · 1514 阅读 · 19 评论
分享