- 博客(50)
- 收藏
- 关注
原创 Linux 进程基础全解析:fork、exec、wait 的实战与原理
本文介绍了Linux系统编程中的核心概念——进程。文章首先区分了程序(静态文件)与进程(动态执行),然后详细讲解了进程管理命令(如ps、top等)。重点阐述了进程创建(fork())、退出(exit()/_exit())、回收(wait()/waitpid())和替换(exec系列函数)的实现机制与代码示例。最后解释了进程组、会话和终端的关系,帮助理解进程在操作系统中的运行原理。通过理论结合实践的方式,全面介绍了Linux进程管理的核心知识点。
2025-10-09 18:58:37
468
原创 C++ 运算符重载与友元:实现优雅直观的类操作
友元机制是 C++ 提供的一把双刃剑。它在特定场景下(如运算符重载、实现某些需要紧密协作的设计模式)非常有用,为我们提供了必要的灵活性。但它也确实打破了类的封装性,如果被滥用,会增加类之间的耦合度,使代码结构变得混乱,难以维护。因此,在使用友元时,我们应时刻保持警惕,确保这是解决当前问题的唯一或最佳途径,而不是简单地为了图方便而随意授权。运算符重载是 C++ 赋予开发者的一项强大能力,它让我们能够编写出更具表现力、更符合人类直觉的代码。通过理解其函数调用的本质,掌握成员函数与非成员/友元函数。
2025-09-30 15:27:42
681
原创 开启C++新世界:从函数到对象的两天思维跃迁
C++与C的本质区别在于编程范式与功能扩展。C是面向过程的函数式语言,而C++支持面向对象编程(封装、继承、多态),并引入引用、模板和STL标准库等特性。C++推荐使用new/delete管理内存,自动调用构造/析构函数,更安全。std::string类简化了字符串操作,体现了封装思想。类通过访问权限实现封装,推荐成员变量私有化。对象创建分栈(自动管理)和堆(手动new/delete),sizeof(Class)遵循内存对齐规则。static成员实现类级别共享,静态变量需类外初始化。这些特性使C++更适合构
2025-09-29 17:00:57
494
原创 《C++多继承与虚表机制详解:从菱形继承到虚继承的全面解析》
本文深入解析C++面向对象编程中的继承机制与多态实现。主要内容包括:1)多源继承的虚函数表管理机制,子类会维护多个虚表,同名函数会覆盖基类实现;2)菱形继承问题及其解决方案(虚继承);3)虚函数表(vtable)的底层实现原理和动态绑定机制;4)虚析构函数的重要性;5)纯虚函数与抽象类的特性。文章通过代码示例详细展示了继承体系中的内存布局和函数调用过程,为理解C++多态机制提供了实践指导。掌握这些核心概念有助于设计健壮的类层次结构,避免常见陷阱。
2025-09-29 16:09:09
568
原创 C++ 继承与派生详解:从概念到代码实战
本文详细介绍了C++中面向对象编程的核心概念——继承与派生。主要内容包括:三种继承方式(public/protected/private)的特点及访问权限控制;继承关系中构造与析构函数的调用顺序(先基类后派生类);派生类对基类成员的访问规则(可访问public/protected成员,不可访问private成员)。通过示例代码展示了继承的实际应用,强调继承机制在代码复用和功能扩展中的重要作用。掌握这些知识点有助于编写更清晰、可维护的面向对象程序。
2025-09-26 19:58:50
778
原创 深入理解C++对象生命周期:构造、拷贝与析构
摘要:C++对象生命周期的核心由构造函数、拷贝构造函数和析构函数构成。构造函数负责对象初始化,析构函数处理资源释放,拷贝构造函数实现对象克隆。特别需要注意的是深拷贝与浅拷贝的区别:默认拷贝构造函数执行浅拷贝仅复制指针地址,而深拷贝需要手动分配新内存并复制内容。当类包含指针等动态资源时,必须实现深拷贝以避免内存问题。通过成员初始化列表和构造函数体的配合,可以高效完成对象初始化和资源申请,而析构函数则确保资源的正确释放。这三个函数共同构成了C++对象资源管理的基石。
2025-09-24 14:03:07
544
原创 一个int数组,里面数据无任何限制,要求求出所有这样的数 a[i],其左边的数都小于等于它,右边的数都大于等于它。
【代码】一个int数组,里面数据无任何限制,要求求出所有这样的数 a[i],其左边的数都小于等于它,右边的数都大于等于它。
2025-09-09 17:04:46
241
原创 将一个二维N*N矩阵顺时针旋转90°,例如a[2][2]={1,2,3,4},旋转过后a[2][2]={4,1,3,2}。
【代码】将一个二维N*N矩阵顺时针旋转90°,例如a[2][2]={1,2,3,4},旋转过后a[2][2]={4,1,3,2}。
2025-09-09 01:10:37
568
原创 如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad 和 adb 就是兄弟字符串)。思路:判断各自素数乘积是否相等。字符计数法
【代码】如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad 和 adb 就是兄弟字符串)。思路:判断各自素数乘积是否相等。字符计数法。
2025-09-09 00:56:16
329
原创 一维前缀和二维前缀和讲解
前缀和是一种用于快速计算数组中子数组和的技巧,它的核心思想是通过预先计算一个数组的前缀和数组,使得后续的区间和查询可以在常数时间内完成。
2025-04-05 12:43:01
514
原创 二分法查找详解
设定数组的左右边界,左边界为数组的起始索引(通常为 0),右边界为数组的结束索引(通常为数组长度减 1)。:直到找到目标值或搜索范围为空(即左边界大于右边界),此时查找失败,返回 -1 或其他表示未找到的标志。如果目标值等于中间位置的值,则查找成功,返回中间位置的索引。:在每次查找中,计算当前搜索范围的中间位置(如果目标值小于中间位置的值,则调整右边界为。如果目标值大于中间位置的值,则调整左边界为。,继续在左半部分查找。,继续在右半部分查找。
2025-04-03 21:52:37
1061
原创 快速排序详解
快速排序是一种高效的排序算法,基于分治法的思想。其核心是选择一个基准值,将序列分为两部分:比基准小的元素放在左边,比基准大的元素放在右边。然后递归地对左右两部分进行相同操作,直到整个序列有序。快速排序具有高效性(平均时间复杂度为 O(nlogn))和原地排序的特点,但最坏情况下时间复杂度为 O(n2)。它是一种分而治之、递归排序的高效算法。
2025-04-03 21:32:59
242
原创 C语言动态内存管理精简版(运用calloc,realloc,mencpy,memcmp函数)
【代码】C语言动态内存管理精简版(运用calloc,realloc,mencpy,memcmp函数)
2025-03-18 15:17:23
472
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅