<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[正经话的博客]]></title><description><![CDATA[独夜忆秦关，听钟未眠客。]]></description><link>https://blog.youkuaiyun.com/qq_19406475</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_19406475]]></copyright><item><title><![CDATA[C++类的继承和派生]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147902900</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147902900</guid><author>qq_19406475</author><pubDate>Mon, 12 May 2025 19:10:14 +0800</pubDate><description><![CDATA[继承是面向对象编程中的核心机制，允许通过已有类（基类）创建新类（派生类），实现代码重用和扩展。继承关系包括单继承和多继承，分别从单个或多个基类派生新类。继承方式（public、protected、private）决定了基类成员在派生类中的访问权限。构造和析构函数的执行顺序遵循基类优先原则。多继承可能引发二义性和菱形继承问题，可通过显式作用域指定和虚继承解决。虚基类确保派生类只保留一份基类副本，抽象类用于定义接口。派生类对象可赋值给基类对象，基类指针/引用可指向派生类对象。设计实践中，应优先使用public继]]></description><category></category></item><item><title><![CDATA[C++类成员]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147902861</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147902861</guid><author>qq_19406475</author><pubDate>Mon, 12 May 2025 19:07:14 +0800</pubDate><description><![CDATA[本文介绍了C++中几种重要的语言特性及其应用场景。内联函数通过将代码直接插入调用点，减少栈内存消耗，适用于短小且频繁调用的函数。this指针用于区分成员变量与参数名冲突，确保对象实例的正确引用。静态成员（包括静态数据成员和静态成员函数）实现类级别的数据共享，需在类外初始化。友元机制允许非成员函数或类访问私有成员，但需谨慎使用以避免破坏封装性。const成员函数确保对象状态不被修改，常用于getter方法。通过合理运用这些特性，可以提升代码效率和设计灵活性，同时维护良好的封装性。]]></description><category></category></item><item><title><![CDATA[03 构造与析构]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147595331</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147595331</guid><author>qq_19406475</author><pubDate>Mon, 28 Apr 2025 20:41:27 +0800</pubDate><description><![CDATA[• 缺省构造函数冲突：若定义无参构造或全缺省参数构造，编译器不再生成缺省版本。• 若未显式定义，编译器生成缺省构造函数，但不会初始化成员（值为随机）。• 指针成员陷阱：浅拷贝导致多个对象指向同一内存，需手动深拷贝。• 构造函数：初始化对象，支持重载、默认参数，注意缺省构造冲突。• 初始化列表（补充）：推荐用初始化列表初始化成员，提高效率。用同类对象初始化新对象，实现深拷贝（避免指针成员浅拷贝问题）。• 拷贝构造：深拷贝解决指针问题，避免默认浅拷贝的陷阱。• 析构函数：释放资源，必须处理动态内存，避免泄漏。]]></description><category></category></item><item><title><![CDATA[02 面向对象]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147595311</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147595311</guid><author>qq_19406475</author><pubDate>Mon, 28 Apr 2025 20:39:12 +0800</pubDate><description><![CDATA[◦ 类是抽象概念（如“教师类”），对象是具体实例（如“教师黎明”）。• 面向对象的核心是通过类与对象组织代码，提高复用性与安全性。◦ 属性（静态特征）：通过数据成员描述（如年龄、职称）。◦ 方法（动态行为）：通过成员函数实现（如学习、教学）。• 定义：对象的抽象描述，是同类对象的“模板”。• 定义：客观存在的实体（如一个人、一辆车）。• 对象是类的实例，通过成员函数操作私有数据。（私有）：仅类内成员函数可访问（默认权限）。• 类是对象的蓝图，定义数据与操作的封装。• 成员函数：定义对象的行为（如。]]></description><category></category></item><item><title><![CDATA[01 C++概述]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147595266</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147595266</guid><author>qq_19406475</author><pubDate>Mon, 28 Apr 2025 20:36:37 +0800</pubDate><description><![CDATA[C++以C语言为基础，通过引入面向对象、泛型编程等机制，解决了C语言在大型项目中的局限性。• C++在C语言基础上引入面向对象机制，同时保留高效性、可移植性，成为系统级开发和复杂应用的主流语言。• 1998年：推出ANSI/ISO C++标准（C++98），成为现代C++的基础。◦ 面向对象：通过对象的属性和行为模拟现实问题（如“冰箱”对象封装开门、关门等操作）。• 将数据（属性）和操作（方法）绑定为独立单元（类），隐藏内部细节，仅暴露接口。• 扩展C的功能：增强类型检查、引入引用、异常处理、模板等。]]></description><category></category></item><item><title><![CDATA[MySQL数据库编程总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147150875</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147150875</guid><author>qq_19406475</author><pubDate>Fri, 11 Apr 2025 18:08:30 +0800</pubDate><description><![CDATA[一、数据库概述数据库定义• 数据库是管理数据的软件系统，用于高效存储、管理和检索数据，减少冗余。•核心功能：通过SQL语言定义、操作数据，维护完整性和安全性。常见数据库• MySQL、Oracle、SQL Server、PostgreSQL等。SQL分类| 类别 |    全称            | 功能   | 常用命令 || DDL | 数据定义语言 | 管理数据对象（库、表） |CREATEDROPALTER| DML | 数据操作语言 | 操作数据记录 |INSERT。]]></description><category></category></item><item><title><![CDATA[Socket多路复用网络编程应用总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147150799</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147150799</guid><author>qq_19406475</author><pubDate>Fri, 11 Apr 2025 18:02:48 +0800</pubDate><description><![CDATA[概述•传统I/O模型的局限性：传统阻塞式I/O模型每次仅在一个文件描述符（File Descriptor, FD）上执行I/O操作，导致程序需等待单个操作完成，无法高效处理多连接场景（如高并发服务器）。•多路复用核心目标：通过非阻塞方式同时监控多个FD的状态（可读、可写、异常），避免进程因等待某个FD而阻塞，提升I/O效率。Select技术核心特点非阻塞轮询：通过轮询机制主动检测FD集合的状态变化，无需阻塞等待单个FD。多路复用机制：单线程/进程可管理多个I/O操作，适用于非阻塞式网络编程。]]></description><category></category></item><item><title><![CDATA[Linux 网络基础知识总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147150742</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147150742</guid><author>qq_19406475</author><pubDate>Fri, 11 Apr 2025 18:00:11 +0800</pubDate><description><![CDATA[•OSI七层模型由国际化标准组织（ISO）制定，将网络通信分为七层：•物理层：比特流传输（如网线、光纤）。•数据链路层：帧传输（MAC地址、差错检测）。•网络层：路由选择（IP协议）。•传输层：端到端可靠传输（TCP/UDP）。•会话层：建立/管理会话。•表示层：数据格式转换（加密、压缩）。•应用层：用户接口（HTTP、FTP）。•TCP/IP四层模型实际应用的工业标准：•网络接口层：对应OSI物理层+数据链路层。•网络层：IP协议（路由、寻址）。•传输层。]]></description><category></category></item><item><title><![CDATA[线程同步机制总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147125730</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147125730</guid><author>qq_19406475</author><pubDate>Thu, 10 Apr 2025 19:24:02 +0800</pubDate><description><![CDATA[条件变量机制作用与特点• 用于线程间同步，允许线程以无竞争方式等待特定条件的发生，避免忙等待（轮询）造成的CPU资源浪费。• 需与互斥锁（）配合使用，确保对共享条件的检查在互斥锁保护下进行。• 条件变量本身不保存状态信息，仅提供阻塞和唤醒机制。核心操作流程初始化等待条件◦ 调用▪ 自动释放互斥锁mutex，线程进入阻塞等待状态。▪ 被唤醒后重新获取mutex锁，需再次检查条件是否满足（防止虚假唤醒）。通知条件◦：唤醒至少一个等待线程。◦：唤醒所有等待线程。销毁。]]></description><category></category></item><item><title><![CDATA[多线程中的互斥与同步]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147125599</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147125599</guid><author>qq_19406475</author><pubDate>Thu, 10 Apr 2025 19:15:46 +0800</pubDate><description><![CDATA[互斥锁用于控制对共享资源的访问，确保在同一时刻只有一个线程能够访问资源。互斥锁有两种状态：上锁（锁定）和解锁（释放）。如果其他线程尝试上锁已被占用的互斥锁，它将被挂起，直到锁被释放。读写锁适用于多读少写的场景。它允许多个线程并发读取共享资源，但写入时必须独占资源，避免数据冲突。]]></description><category></category></item><item><title><![CDATA[多线程编程：提高程序效率与响应性]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147076745</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147076745</guid><author>qq_19406475</author><pubDate>Tue, 08 Apr 2025 20:22:55 +0800</pubDate><description><![CDATA[线程是进程中的一个执行单元，每个进程至少有一个线程，称为主线程。多线程编程是指在一个程序中创建多个线程，这些线程可以并发执行不同的任务。与进程相比，线程共享进程的资源，如内存和文件描述符，因此线程间的通信比进程间通信更为高效。多线程编程通过让一个程序同时执行多个任务，显著提高了程序的效率和响应性。线程与进程相比，具有更小的开销和更高效的资源共享机制。掌握多线程编程的基本操作和常见函数，可以帮助开发者在多任务处理、后台服务和并行计算等场景中充分利用多核处理器的性能。]]></description><category></category></item><item><title><![CDATA[System V 信号量：控制进程间共享资源的访问]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147076587</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147076587</guid><author>qq_19406475</author><pubDate>Tue, 08 Apr 2025 20:15:26 +0800</pubDate><description><![CDATA[System V 信号量是一种用于进程同步的机制。它允许多个进程在共享资源时，利用信号量来协调访问。信号量通常以整数形式存在，通过两个操作——P 操作和V 操作P 操作（Proberen，尝试）：减少信号量的值，如果信号量的值大于或等于零，进程可以继续执行。如果信号量值小于零，进程将被阻塞，直到信号量的值变得大于或等于零。V 操作（Verhogen，增加）：增加信号量的值，如果增加后的值大于或等于零，进程继续执行；如果增加后的值小于零，进程将被阻塞。]]></description><category></category></item><item><title><![CDATA[Linux 进程间通信：信号机制]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147076504</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147076504</guid><author>qq_19406475</author><pubDate>Tue, 08 Apr 2025 20:11:38 +0800</pubDate><description><![CDATA[信号是一种进程间通信的方式，用于向进程传递异步事件。在Linux中，信号最初设计为软中断，其作用类似于硬件中断，可以中断当前进程的执行，转而处理特定的事件。忽略信号：不做任何处理。默认处理：操作系统定义的默认响应，例如，进程被终止或暂停。捕捉信号：进程定义的自定义处理函数，当信号到达时，进程会中断当前任务，转而执行指定的处理程序。信号是Linux系统中实现进程间通信的一种重要机制，它能够让进程处理突发的异步事件。虽然信号机制具有一定的复杂性和限制，但它在很多场景下仍然是非常有效的进程控制工具。]]></description><category></category></item><item><title><![CDATA[进程间通讯（IPC）]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/147076447</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/147076447</guid><author>qq_19406475</author><pubDate>Tue, 08 Apr 2025 20:09:02 +0800</pubDate><description><![CDATA[进程间通讯是指两个或多个进程之间交换信息的机制。每个进程在系统中都是独立的资源管理单元，它们之间的资源是相互隔离的。尽管如此，进程之间仍然需要进行数据传输、同步或其他形式的消息交换，因此进程间通讯机制应运而生。在Linux中，进程间通讯是一个至关重要的功能，它使得多个进程能够协同工作，共享数据和资源。不同的IPC方式各有优缺点，开发者可以根据实际需求选择合适的通讯机制。无论是简单的管道，还是更复杂的共享内存和消息队列，IPC都为Linux系统提供了强大的进程间协作能力。]]></description><category></category></item><item><title><![CDATA[Linux进程与进程控制学习总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/146404034</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/146404034</guid><author>qq_19406475</author><pubDate>Thu, 20 Mar 2025 19:10:21 +0800</pubDate><description><![CDATA[通过掌握进程控制函数，能够编写高效的多进程程序，充分利用系统资源。实现一个简单的Shell，执行用户输入的命令。：创建子进程并区分父子进程逻辑。：父进程等待子进程结束。]]></description><category></category></item><item><title><![CDATA[Linux目录操作学习总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/146403958</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/146403958</guid><author>qq_19406475</author><pubDate>Thu, 20 Mar 2025 19:05:10 +0800</pubDate><description><![CDATA[通过结合目录操作函数和文件属性查询，可实现复杂的文件系统管理功能。的功能，输出目录下文件的详细信息（名称、类型、inode号）。]]></description><category></category></item><item><title><![CDATA[Linux文件操作笔记]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/146400127</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/146400127</guid><author>qq_19406475</author><pubDate>Thu, 20 Mar 2025 16:17:25 +0800</pubDate><description><![CDATA[通过结合系统调用和标准IO的优势，可以灵活应对不同场景下的文件操作需求。：使用系统调用实现文件内容反转（如将。]]></description><category></category></item><item><title><![CDATA[数据结构学习总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/146161832</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/146161832</guid><author>qq_19406475</author><pubDate>Mon, 10 Mar 2025 19:21:31 +0800</pubDate><description><![CDATA[本总结覆盖数据结构核心内容，建议结合算法题实践（如LeetCode）深入理解不同结构的应用场景。：实现LRU缓存（哈希表+双向链表）：二叉树的中序遍历（递归实现）：删除有序数组中的重复项。：LIFO（后进先出）：FIFO（先进先出）：两数之和（哈希优化）]]></description><category></category></item><item><title><![CDATA[C语言学习总结]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/146161775</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/146161775</guid><author>qq_19406475</author><pubDate>Mon, 10 Mar 2025 19:18:34 +0800</pubDate><description><![CDATA[动态创建数组存储学生成绩，计算平均分。：交换两个变量值（指针实现）：计算圆的面积（使用。]]></description><category></category></item><item><title><![CDATA[C语言二叉树学习笔记]]></title><link>https://blog.youkuaiyun.com/qq_19406475/article/details/145873448</link><guid>https://blog.youkuaiyun.com/qq_19406475/article/details/145873448</guid><author>qq_19406475</author><pubDate>Wed, 26 Feb 2025 11:14:53 +0800</pubDate><description><![CDATA[树：一种非线性数据结构，由节点和边组成，模拟分层关系。核心术语根节点：树的顶层节点（唯一）。子节点/双亲节点：一个节点的直接下层节点称为子节点，该节点称为子节点的双亲节点。叶子节点：没有子节点的节点。节点的度：节点的子节点数量。树的深度/高度：树中节点的最大层次（根节点为第1层）。二叉树：每个节点最多有2个子节点（左子节点和右子节点）。特点子树有明确的左右之分。可以为空树（没有节点）。性质左子树所有节点的值 < 根节点的值。右子树所有节点的值 > 根节点的值。]]></description><category></category></item></channel></rss>