<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hsjkdhs的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hsjkdhs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hsjkdhs]]></copyright><item><title><![CDATA[C++异常处理]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/153816447</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/153816447</guid><author>hsjkdhs</author><pubDate>Fri, 24 Oct 2025 16:24:42 +0800</pubDate><description><![CDATA[有了异常处理机制，可以将多处函数调用都写在一个 try 块中，任何一处调用发生异常都会被匹配的 catch 块捕获并处理，也就不需要每次调用后都判断是否发生了异常。有时，虽然在函数中对异常进行了处理，但是还是希望能够通知调用者，以便让调用者知道发生了异常，从而可以作进一步的处理。如果 try 块执行的过程中拋出了异常，那么拋出异常后将立即跳转到第一个“异常类型”和拋出的异常类型匹配的 catch 块中执行（称作异常被该 catch 块“一个函数如果不交待能拋出哪些类型的异常，就可以拋出任何类型的异常。]]></description><category></category></item><item><title><![CDATA[C++文件操作]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/153747382</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/153747382</guid><author>hsjkdhs</author><pubDate>Wed, 22 Oct 2025 22:30:17 +0800</pubDate><description><![CDATA[本文介绍了C++中文件操作的基本方法，主要包括：1. 文件流类（ifstream、ofstream、fstream）的使用；2. 文件打开方式（ios::in、ios::out等）及属性设置；3. 文本文件和二进制文件的读写操作（&lt;&lt;、&gt;&gt;、put()、get()等）；4. 文件指针操作（tellg()、seekg()等）；5. 文件状态检查函数（good()、bad()等）。文章详细说明了如何通过流对象进行文件操作，包括打开、读写、定位和关闭文件等基本操作，并提供了二进制文件大小计]]></description><category></category></item><item><title><![CDATA[C++模板]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/153732722</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/153732722</guid><author>hsjkdhs</author><pubDate>Wed, 22 Oct 2025 20:49:55 +0800</pubDate><description><![CDATA[本文系统介绍了C++模板和类型转换机制。在模板部分，详细讲解了函数模板和类模板的定义与使用，通过max_value比较函数和Node类展示了模板实现代码复用的优势。文章还提供了数组类模板和链表类模板的完整实现案例。在类型转换部分，分析了四种强制类型转换操作符：const_cast用于去除const属性，static_cast用于基本类型转换和类层次转换，reinterpret_cast用于无关类型指针转换，dynamic_cast则提供运行时安全检查。这些机制共同构成了C++强大的泛型编程和类型系统特性。]]></description><category></category></item><item><title><![CDATA[C++运算符重载]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/153279934</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/153279934</guid><author>hsjkdhs</author><pubDate>Tue, 21 Oct 2025 22:16:38 +0800</pubDate><description><![CDATA[简单来说，运算符重载就是对已有的运算符进行重新定义，赋予其处理自定义数据类型的能力。例如，表达式 a + b 在背后可能被编译器解释为 a.operator+(b) (成员函数调用) 或 operator+(a, b) (全局函数调用)。]]></description><category></category></item><item><title><![CDATA[C++之多态]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/153211474</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/153211474</guid><author>hsjkdhs</author><pubDate>Mon, 13 Oct 2025 22:31:44 +0800</pubDate><description><![CDATA[多态（Polymorphism）是面向对象程序设计中最重要的特征之一。它指的是：“同一个接口，表现出不同的行为”。也就是说，同样的函数调用语句，在不同对象上会表现出不同的执行结果。带有至少一个纯虚函数的类称为抽象类。public:// 纯虚函数抽象类不能创建对象；只能作为基类，被派生类继承并实现纯虚函数。让“接口与实现分离”，通过统一的接口实现灵活可扩展的运行行为。基于继承；相同函数原型；virtual关键字启用动态绑定。]]></description><category></category></item><item><title><![CDATA[C++之多层继承、多源继承、菱形继承]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/153208779</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/153208779</guid><author>hsjkdhs</author><pubDate>Mon, 13 Oct 2025 20:24:17 +0800</pubDate><description><![CDATA[本文通过三个典型示例解析C++继承机制的核心问题：1.多层继承展示构造/析构顺序（A→B→C）以及访问权限控制规则；2.多源继承揭示构造顺序由继承声明顺序决定，与初始化列表无关；3.菱形继承暴露二义性问题，建议使用虚继承解决。文章以代码示例配合运行结果分析，清晰呈现了不同继承场景下的对象构建过程、成员访问规则及解决方案，最后通过对比表总结关键差异。]]></description><category></category></item><item><title><![CDATA[C++兼容性规则]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152822564</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152822564</guid><author>hsjkdhs</author><pubDate>Thu, 09 Oct 2025 21:09:01 +0800</pubDate><description><![CDATA[摘要：C++中派生类对象可被视为基类对象，反之则不可。具体表现为：1)派生类对象可赋值给基类对象（发生对象切片，仅保留基类部分）；2)派生类对象可初始化基类引用（安全，不切片）；3)基类指针可指向派生类对象（实现多态的基础）。这三种方式都只能访问从基类继承的成员，无法访问派生类特有成员。这些特性体现了面向对象中&quot;向上转型&quot;的基本原则，是实现多态的重要机制。]]></description><category></category></item><item><title><![CDATA[C++之类的继承与派生]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152322031</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152322031</guid><author>hsjkdhs</author><pubDate>Thu, 09 Oct 2025 20:08:35 +0800</pubDate><description><![CDATA[本文系统介绍了C++中的继承与派生机制。继承是保留基类特性构建新类，派生是在基类基础上新增特性产生新类。继承方式包括public、protected和private三种，决定了基类成员在派生类中的访问权限变化：public继承保持基类访问权限不变；protected继承将基类public成员降为protected；private继承将所有可继承成员变为private。]]></description><category></category></item><item><title><![CDATA[C++之类的组合]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152282269</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152282269</guid><author>hsjkdhs</author><pubDate>Tue, 30 Sep 2025 10:50:37 +0800</pubDate><description><![CDATA[摘要： 类组合是面向对象编程中通过&quot;has-a&quot;关系构建复杂对象的技术，即将其他类的对象作为成员变量。其核心优势包括灵活性、代码重用、松散耦合和更好的封装性。组合时，构造函数需通过初始化列表显式调用成员对象的构造函数，执行顺序遵循成员声明顺序（先声明先构造），析构则相反。典型示例如Car类组合Engine、Wheel等对象，通过委托实现功能模块化，体现了&quot;组合优于继承&quot;的设计原则。组合严格保持封装性，外层类无权访问成员对象的私有成员。]]></description><category></category></item><item><title><![CDATA[C++之友元函数与前向引用]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152280140</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152280140</guid><author>hsjkdhs</author><pubDate>Mon, 29 Sep 2025 20:58:47 +0800</pubDate><description><![CDATA[摘要：C++友元函数允许非成员函数访问类的私有成员，通过friend关键字声明，主要用于运算符重载和类间协作。友元函数分为全局函数、类成员函数和友元类三种类型，示例展示了不同场景的应用。前向声明用于解决类间的循环依赖问题，通过class ClassName;声明，但只能使用指针或引用，不能实例化对象或访问成员。二者都是C++中重要的特性，但需谨慎使用以避免破坏封装性。]]></description><category></category></item><item><title><![CDATA[C++之拷贝构造（浅拷贝与深拷贝）、this指针、内联函数]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152224662</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152224662</guid><author>hsjkdhs</author><pubDate>Sun, 28 Sep 2025 21:48:48 +0800</pubDate><description><![CDATA[本文系统讲解了C++中拷贝构造函数、this指针和内联函数的核心概念。拷贝构造函数分为浅拷贝（默认成员值复制）和深拷贝（需手动实现指针成员的内存复制），重点阐述了指针成员情况下深拷贝的必要性以避免双重释放问题。this指针是类成员函数中指向当前对象的隐式指针，用于解决名称冲突和实现链式调用。内联函数通过代码替换消除函数调用开销，但需注意只适合简单函数且编译器有权拒绝内联建议。三者都是提高C++代码安全性和性能的重要机制，需要根据具体场景合理使用。]]></description><category></category></item><item><title><![CDATA[万字详解C++之构造函数析构函数]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152087740</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152087740</guid><author>hsjkdhs</author><pubDate>Thu, 25 Sep 2025 22:25:05 +0800</pubDate><description><![CDATA[本文主要介绍了C++中的函数重载、构造函数和析构函数三个重要概念。首先，函数重载允许相同函数名但不同参数列表的函数存在，编译器通过参数类型、个数和顺序来区分调用哪个函数。其次，构造函数是在对象创建时自动调用的特殊成员函数，用于初始化对象，可以重载但必须与类同名且无返回类型。析构函数则在对象销毁时自动调用，用于资源清理，不能重载且必须与类同名加波浪号。文章还详细说明了new和delete在对象创建和销毁时的作用，以及构造函数如何实现隐式类型转换。通过多个示例代码演示了这些概念的具体应用和实现原理。]]></description><category></category></item><item><title><![CDATA[C++之引用与堆内存(new)]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152051365</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152051365</guid><author>hsjkdhs</author><pubDate>Wed, 24 Sep 2025 23:19:50 +0800</pubDate><description><![CDATA[本文摘要： 编码规范要求：类成员变量设为private，通过public方法间接访问；函数声明顺序为public→protected→private；函数定义与声明分离，.h文件放声明，.cpp文件放实现。 引用是变量别名，须初始化且不可更改，主要用于函数传参（避免拷贝、修改实参）、返回值（直接操作内部数据）和常量引用（高效传递大对象）。与指针相比，引用更安全但功能受限。 堆内存管理：C风格用malloc/free（不调用构造/析构函数），C++风格用new/delete（自动调用构造/析构，类型安全）。n]]></description><category></category></item><item><title><![CDATA[C++概述（二）]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/152045016</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/152045016</guid><author>hsjkdhs</author><pubDate>Wed, 24 Sep 2025 21:46:11 +0800</pubDate><description><![CDATA[C++对C语言的扩展主要体现在三个方面：1. 头文件引入方式变化，C++标准库头文件无.h后缀，采用命名空间std管理；2. 引入namespace机制解决命名冲突问题，支持声明域和作用域控制；3. 增强字符串处理能力，提供string类实现自动内存管理和丰富操作。此外，C++中的struct功能显著增强，支持成员函数、构造函数等面向对象特性，与class的主要区别仅在于默认访问权限和继承方式。这些改进使C++更适合大规模软件开发，同时保持对C语言的兼容性。]]></description><category></category></item><item><title><![CDATA[C++概述 （一）]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/151973546</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/151973546</guid><author>hsjkdhs</author><pubDate>Mon, 22 Sep 2025 22:14:05 +0800</pubDate><description><![CDATA[本文主要介绍了C++的重要特性及其与C语言的区别。C语言是面向过程的编程语言，而C++支持面向对象编程，具备封装、继承和多态三大特性。C++还新增了引用、模板、STL标准库等功能，更适合大型复杂项目开发。文章详细解释了C++的三大特性：封装隐藏实现细节，继承实现代码复用，多态实现同一接口不同行为。同时介绍了C++的发展历程、编程环境及编译器处理流程，并分析了输出缓冲区的五种刷新机制，包括程序结束、缓冲区满、显式刷新、设置流状态和关联输入输出流。]]></description><category></category></item><item><title><![CDATA[C++符号表]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/151971972</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/151971972</guid><author>hsjkdhs</author><pubDate>Mon, 22 Sep 2025 20:41:06 +0800</pubDate><description><![CDATA[当你在同一个作用域内声明两次 int a;时，编译器在向符号表添加第二个 a 时会发现它已经存在，从而报错 "redeclaration of 'int a'"。]]></description><category></category></item><item><title><![CDATA[MySQL单表操作]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/151726885</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/151726885</guid><author>hsjkdhs</author><pubDate>Tue, 16 Sep 2025 08:30:00 +0800</pubDate><description><![CDATA[本文介绍了MySQL中DML语言的基本操作，包括数据插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)。首先创建包含姓名、年龄和分数字段的stu表作为示例。重点讲解了查询操作的多种方式：基础查询、条件查询、四则运算、排序、分页、统计函数以及分组查询(配合HAVING使用)。最后简要介绍了常用MySQL函数如日期时间、字符串处理等函数。文章提供了完整的SQL语法格式和实用代码示例，适合MySQL初学者快速掌握数据库基本操作。]]></description><category></category></item><item><title><![CDATA[网络编程之UDP广播与粘包问题]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/151690210</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/151690210</guid><author>hsjkdhs</author><pubDate>Sun, 14 Sep 2025 23:05:57 +0800</pubDate><description><![CDATA[本文介绍了UDP广播通信的实现原理和应用场景。UDP广播通过广播地址255.255.255.255实现局域网内的&quot;点对多&quot;通信，需使用setsockopt()开启SO_BROADCAST选项。文章对比了TCP和UDP的通信特点，TCP存在粘包问题，可通过自定义报文格式解决，而UDP以报文为单位不会产生粘包。文中提供了UDP广播的发送端和接收端示例代码，展示了如何实现广播功能。广播通信适用于局域网环境，简单高效，但需注意网络负载问题。]]></description><category></category></item><item><title><![CDATA[C语言之函数]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/151680144</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/151680144</guid><author>hsjkdhs</author><pubDate>Sun, 14 Sep 2025 14:48:00 +0800</pubDate><description><![CDATA[本文系统介绍了C语言函数的相关知识，主要包括：1. 函数的基本概念，包括模块化程序设计思想、函数分类（库函数/自定义函数、有参/无参函数）；2. 函数定义与调用，详细说明了函数定义格式、形参与实参的关系、函数返回值机制；3. 函数的特殊调用方式，包括嵌套调用和递归调用；4. 数组作为函数参数时的注意事项；5. 变量的作用域（局部/全局变量）和存储类型（auto/static/extern/register）；6. 内部函数与外部函数的区别。文章通过组合数计算等实例，阐述了函数在代码复用和程序结构化中的重要作]]></description><category></category></item><item><title><![CDATA[MySQL 数据类型与运算符详解]]></title><link>https://blog.youkuaiyun.com/hsjkdhs/article/details/151373286</link><guid>https://blog.youkuaiyun.com/hsjkdhs/article/details/151373286</guid><author>hsjkdhs</author><pubDate>Thu, 11 Sep 2025 22:46:40 +0800</pubDate><description><![CDATA[本文系统介绍了MySQL的核心功能：1.数据类型分为整数、小数、字符串、日期等多种类型，需根据业务需求选择；2.运算符包括算术、比较、逻辑等五类，使用时需注意优先级和NULL值处理；3.存储引擎主要有InnoDB、MyISAM等，各自适用于不同场景，InnoDB支持事务适合高并发。掌握这些基础知识可提升MySQL使用效率。]]></description><category></category></item></channel></rss>