- 博客(71)
- 收藏
- 关注
原创 【Linux网络】UDP协议详解:透过源码看透“面向数据报”与“缓冲区”的本质
本文介绍了传输层协议UDP的特点和工作原理。UDP是一种无连接、不可靠的协议,采用面向数据报的传输方式,发送方交付多少数据就发送多少数据,不会进行报文融合或拆分。文章详细解析了UDP报文格式(8字节报头+有效载荷)和校验机制,并指出UDP没有发送缓冲区,只有接收缓冲区。通过struct sk_buff结构体说明了操作系统如何管理网络报文。最后提到UDP报文最大长度为64KB的局限性,建议大数据传输时应在应用层手动分包处理。
2025-12-17 17:39:58
1074
36
原创 【Linux 网络】理解并应用应用层协议:HTTP(附简单HTTP服务器C++代码)
本文介绍了HTTP协议的基本概念及其实现要点。HTTP是应用层协议,采用请求-响应模型,具有无连接、无状态特性。文章详细讲解了HTTP请求/响应格式、URL结构、状态码和重定向机制,并提供了HTTP服务器的模拟实现代码。代码实现部分重点说明了反序列化请求获取URI、合成资源路径、序列化响应以及处理不同类型资源的关键要点,特别强调了二进制读取方式的重要性。最后指出当资源不存在时应构建404页面响应。
2025-12-14 11:14:17
1210
42
原创 【Linux网络】深入理解守护进程(Daemon)及其实现原理
本文介绍了Linux系统中的进程组、会话和控制终端概念,重点讲解了守护进程的实现方法。进程组是由一个或多个进程组成的集合,进程组生命周期独立于组长进程。会话则是多个进程组的集合,每个会话最多有一个控制终端。守护进程通过创建新会话脱离原终端,实现长期稳定运行。具体实现步骤包括:忽略挂断信号、fork子进程退出父进程、调用setsid创建新会话、更改工作目录、重定向标准输入输出等。文章还提供了守护进程化的代码实现,并说明系统库中已提供daemon()函数实现相同功能。
2025-12-11 16:40:34
1185
39
原创 【Linux 网络】基于TCP的Socket编程:通过协议定制,实现网络计算器
本文介绍了基于TCP的Socket编程进阶实现,重点讲解了协议定制和网络计算器的实现。主要内容包括: Socket封装:采用模板方法模式对Socket接口进行封装,实现TCP套接字的基本功能。 协议定制: 使用JsonCpp库实现序列化和反序列化 设计编码规则解决TCP粘包问题(报文长度+\r\n+报文+\r\n) 网络计算器实现: 定义Request和Respond类处理运算式和结果 通过Protocol类实现编码解码 计算模块完成基本运算功能 完整实现:服务器端采用多进程模型,客户端通过协议与服务器交互
2025-12-07 23:07:54
1193
42
原创 【Linux 网络】TCP Socket 编程实战:手把手实现远程命令执行(附实操要点 + 完整代码)
本文介绍了基于TCP的Socket编程实现,详细讲解了TCP接口的使用方法。主要内容包括:1) TCP核心接口如socket()、bind()、listen()、accept()等的功能和使用说明;2) 实现简单的客户端/服务端通信示例代码;3) 将单进程服务器改进为多线程版本,支持并发处理多个客户端请求;4) 通过popen()函数实现远程命令执行模块,增强服务器功能;5) 完整代码展示了日志系统、线程安全、网络地址转换等关键实现细节。相比UDP,TCP编程需要更多关注连接管理和流式传输特性,本文通过详细
2025-12-01 12:09:15
610
48
原创 【Linux网络】基于UDP的Socket编程,实现简单聊天室
本文介绍了基于UDP协议实现的简单聊天室程序。客户端通过sendto发送消息,recvfrom接收消息,并使用多线程实现并行收发。服务器端通过recvfrom接收消息,使用vector维护在线用户列表,并通过线程池将消息转发给所有在线用户。主要实现了登录识别、消息转发和退出处理功能,其中首次发送消息视为登录,"QUIT"消息触发退出。文章详细阐述了客户端和服务器的实现思路,并提供了关键代码模块,包括UDP套接字创建、消息收发、在线用户管理以及线程池优化等内容。最后还对IP地址和端口号转换
2025-11-12 16:05:41
1248
56
原创 【Linux网络】Socket编程实战,基于UDP协议的Dict Server
本文介绍了一个基于UDP协议的Socket编程实现,通过添加翻译模块扩展了原有的EchoServer功能。系统使用C++开发,包含客户端和服务端两部分:客户端发送英文单词到服务端,服务端通过预定义的字典文件(Dict.txt)进行单词翻译并返回结果。翻译模块采用哈希表存储单词映射,实现了高效的查询功能。服务端通过回调函数调用翻译功能,并使用日志模块记录运行状态。该系统展示了网络编程与业务逻辑模块的解耦设计,同时提供了完整的代码实现,可作为网络编程和模块化设计的实践参考。
2025-11-10 11:26:29
418
54
原创 【Linux网络】Socket编程实战,基于UDP协议的Echo Server
本文详细介绍了基于UDP协议的Socket编程实现EchoServer服务。主要内容包括: 服务器端实现分为初始化阶段(创建套接字、绑定信息)和运行阶段(接收并回显消息) 详细讲解了socket()、bind()、recvfrom()、sendto()等关键系统调用的使用 完整实现了UDP服务器类,包含日志模块和互斥锁封装 客户端实现注意事项,包括端口自动绑定机制 优化方案:服务器使用INADDR_ANY绑定任意地址,增加回调函数处理消息 提供了完整的代码实现,包括服务器和客户端的通信示例 该实现展示了基本
2025-10-30 10:25:34
1088
64
原创 【Linux网络】套接字Socket编程预备
本文介绍了Socket编程的基本概念和接口。首先阐述了网络通信的本质是进程间通信,通过IP地址+端口号可以唯一标识目标进程。接着讲解了端口号的作用和范围划分,以及TCP/UDP协议的特点区别。文章重点介绍了网络字节序的概念和相关转换函数,并详细说明了Socket编程的核心接口函数及其参数结构体sockaddr的设计原理。最后指出sockaddr通过类继承方式实现了对网络通信和本地通信的兼容支持。这些知识为后续实现服务器与客户端通信奠定了基础。
2025-10-24 16:47:15
782
61
原创 【Linux网络】初识网络,网络的基础概念
本文介绍了计算机网络的基础知识,包括网络发展历史、协议概念和分层架构。网络从最初的局域网逐渐发展为广域网,最终形成全球互联的互联网。协议是通信双方必须遵守的约定,由国际组织如ISO、IETF等制定标准。重点讲解了OSI七层模型和实际应用的TCP/IP五层(或四层)协议栈,包括物理层、数据链路层、网络层、传输层和应用层的功能。通过局域网和跨网络传输流程,解释了MAC地址和IP地址的作用差异,以及数据封装解包的过程。最后说明了路由器在跨网络通信中的关键作用,实现不同网络间的数据转发。
2025-10-17 14:44:16
3536
63
原创 【Linux系统】线程安全与死锁问题
本文讨论了线程安全与死锁问题。线程安全指多线程访问共享资源时能正确执行,而重入指同一函数被多个执行流同时调用。不可重入函数通常涉及静态变量、全局链表或标准IO操作。STL容器默认线程不安全,而智能指针通过原子操作保证安全。死锁由互斥、请求保持、不剥夺和循环等待四个条件引发,破坏任一条件即可避免死锁。
2025-10-09 16:09:36
1146
64
原创 【Linux实战 】Linux 线程池的设计、实现与单例模式应用
本文介绍了线程池的实现方法,通过预创建可复用线程集合来优化系统性能。线程池采用互斥锁和条件变量保障线程安全,使用模板提高任务类型的通用性。核心设计包括:线程初始化时绑定任务处理函数HandlerTask(),任务队列管理机制,以及线程唤醒策略(WakeUpOne()和WakeUpAll())。此外,文章还展示了如何通过单例模式实现线程池,确保全局唯一实例。关键点在于同步机制、线程安全控制和任务处理流程,最后提供了完整的C++实现代码,包括线程启动、任务入队和线程退出等核心功能。
2025-10-06 23:03:44
1770
58
原创 【Linux 实战】从0到1手搓日志系统:附完整代码
本文介绍了一个基于策略模式的C++日志库实现方案。通过抽象基类LogStrategy定义日志刷新接口,并派生出ConsoleLogStrategy(屏幕输出)和FileLogStrategy(文件输出)两种具体策略。使用Logger类封装日志功能,内部通过LogMessage类构建标准格式的日志信息(包含时间戳、日志等级、进程ID、文件名和行号等)。实现中采用多线程安全的锁机制保证写操作原子性,支持可变参数和流式输出,并通过宏定义简化调用接口。该设计为后续线程池实现提供了日志支持,具有良好的扩展性和灵活性。
2025-09-27 11:16:00
2285
69
原创 【Linux系统】深入理解线程同步,实现生产消费模型
本文深入探讨了Linux系统中的线程同步机制,重点介绍了条件变量和POSIX信号量两种实现方式。在互斥锁基础上,线程同步通过排队机制解决了线程饥饿问题,确保线程有序访问临界资源。文章详细解析了条件变量的接口和使用场景,并通过票务系统示例演示其实现效果。随后引入生产者-消费者模型,阐述其"三二一"设计原则(三种关系、两种角色、一个场所),并给出基于阻塞队列的具体实现。针对资源分块场景,文章提出使用POSIX信号量方案,并实现基于环形队列的生产者消费者模型,通过信号量计数器管理资源分配。两种
2025-09-23 16:16:37
1347
77
原创 【Linux系统】深入理解线程,互斥及其原理
本文主要探讨Linux系统中线程的互斥与同步问题。当多个线程共享资源时会出现数据不一致(如抢票案例中票数为负数),这是由于非原子操作(如ticket--)在多线程环境下被中断导致。解决方案是使用互斥锁,通过pthread_mutex_lock/unlock保护临界区,确保同一时间只有一个线程访问共享资源。文章详细解析了锁的实现原理(交换指令xchgb保证原子性)和工作机制(锁值为1可获取,0则挂起等待),并强调所有线程必须遵守锁规则。锁将并行转为串行执行,有效解决线程安全问题,保证数据一致性。
2025-09-16 19:41:11
920
61
原创 【Linux系统】初见线程,概念与控制
本文深入解析了Linux线程的概念、实现原理及控制方法。主要内容包括:1. 线程是进程内部的执行分支,在Linux中通过轻量级进程(LWP)实现,使用PCB结构体描述;2. 线程共享进程资源,但拥有独立的执行流和栈空间;3. 通过pthread库提供的接口(如pthread_create、pthread_join等)实现线程创建、终止、等待和分离;4. 详细分析了线程ID的本质、地址空间布局以及线程局部存储特性;5. 比较了线程与进程在资源管理、切换开销等方面的差异。文章还探讨了页表机制、物理内存管理、TL
2025-09-10 15:29:47
1301
62
原创 【Linux系统】万字解析,进程间的信号
本文系统介绍了Linux进程信号机制,主要内容包括:1. 信号概念:信号是OS发送给进程的异步通知机制,具有延迟处理特性,进程内置了信号识别和处理方式;2. 信号产生方式:键盘输入(如Ctrl+C)、系统调用(kill/abort/alarm)、命令操作(killall)及程序异常(除零错误等);3. 信号处理流程:涉及信号保存(pending/block位图)、内核态与用户态切换,以及默认/自定义/忽略三种处理方式;4. 关键系统调用:详细解析了sigprocmask、sigpending、sigacti
2025-09-02 17:25:34
692
64
原创 【Linux系统】命名管道与共享内存
本文介绍了Linux系统中两种重要的进程间通信(IPC)机制:命名管道和共享内存。命名管道克服了匿名管道只能用于父子进程通信的限制,通过文件路径实现任意进程间的通信,并详细阐述了其创建、使用和删除的接口方法。共享内存则是通过将同一物理内存映射到不同进程的地址空间来实现通信,具有高效但无同步机制的特点。文章通过代码示例展示了如何利用这两种机制实现进程间通信,并比较了它们的特性和适用场景。两种方式各有利弊,命名管道提供同步机制但速度较慢,共享内存速度快但缺乏数据保护。
2025-08-23 18:32:59
7326
65
原创 【Linux系统】匿名管道以及进程池的简单实现
本文介绍了Linux进程间通信(IPC)中的匿名管道机制。主要内容包括:1.进程通信目的(数据传输、资源共享等)和本质(让不同进程看到同一份资源);2.匿名管道的使用方法(pipe()系统调用)和原理(基于文件的内存级通信);3.匿名管道的5个特性(本机通信、血缘关系、同步机制、字节流、单向通信)和4种通信情况;4.通过C++代码实现父子进程间管道通信;5.基于匿名管道构建进程池,包括进程池的设计思路、实现代码及bug修复(正确关闭文件描述符)。文章详细讲解了匿名管道的技术原理和实际应用。
2025-08-20 12:35:18
1266
62
原创 【Linux系统】动静态库的制作
本文介绍了Linux系统中动静态库的制作与使用。静态库通过ar工具将.o文件打包成.a文件,使用-L指定库路径,-l指定库名进行链接。动态库使用gcc的-fPIC和-shared选项生成.so文件,运行时需配置系统查找路径(软连接、环境变量或ldconfig)。静态库在编译时链接,而动态库在运行时加载。文章还说明了头文件和库文件的默认系统路径,以及如何将自定义库安装到系统中以便简化调用。
2025-08-17 14:51:25
1167
56
原创 【Linux系统】详解Ext2,文件系统
深入解析了Linux文件系统管理机制。首先介绍了机械磁盘的物理结构(磁头、磁道、扇区、柱面)和逻辑寻址方式(CHS与LBA转换)。其次,详细讲解了Ext2文件系统的核心组件:超级块记录文件系统元信息,块组描述符表管理块组属性,块位图和inode位图跟踪资源使用情况,inode表存储文件属性,数据块存放文件内容。文件通过inode号唯一标识,目录则存储文件名与inode的映射关系。最后比较了软硬链接的区别:软链接是独立文件保存目标路径,硬链接则是同一inode的新文件名映射。文章完整呈现了从物理磁盘到文件
2025-08-12 18:25:35
1163
55
原创 【Linux系统】万字解析,文件IO
本文介绍了Linux系统中的文件IO操作,包括C语言文件接口和系统调用。首先讲解了文件的基本概念(内容+属性)和操作本质(进程通过系统调用访问磁盘)。然后详细对比了C标准库函数(fopen/fclose/fwrite/fread)和系统调用(open/close/write/read)的使用方法,重点分析了文件描述符fd的本质是进程PCB中的数组下标。文章还深入探讨了重定向的实现原理(通过dup2系统调用)和缓冲区的两种类型:用户级缓冲区(C库维护)和内核级缓冲区(OS管理),并通过实验验证了缓冲区刷新规则
2025-08-08 15:05:29
2154
59
原创 【Linux系统】详解,进程控制
本文介绍了Linux系统中进程控制的相关知识。重点讲解了fork函数创建子进程的机制、进程退出的三种场景及退出方法(main返回、exit、_exit),并详细说明了退出码的含义。文章还阐述了进程等待的必要性,介绍了wait和waitpid函数的使用方法及参数含义。最后讲解了程序替换的原理,列举了exec函数族(execl、execlp、execv等)的使用方式及其区别。这些内容是理解Linux进程管理的基础知识,对系统编程和进程控制具有重要指导意义。
2025-08-03 00:02:35
1021
61
原创 【Linux】虚拟地址空间
本文介绍了Linux虚拟地址空间的概念及其工作原理。通过代码示例展示了虚拟地址空间分布,验证了父子进程共享相同虚拟地址但实际物理地址不同的现象。文章解释了写时拷贝机制的作用:1)减少进程创建时间;2)避免内存浪费。深入剖析了虚拟地址空间的本质是mm_struct结构体,以及操作系统通过vm_area_struct管理不同内存区域的机制。最后阐述了虚拟地址空间的三大优势:1)将无序物理地址有序化;2)提供内存保护机制;3)解耦进程与内存管理。文章还补充说明了挂起状态时内存的处理方式。
2025-07-31 15:32:07
1596
52
原创 【Linux】环境变量
本文介绍了Linux中的环境变量概念及其应用。环境变量是操作系统运行环境的重要参数,具有全局特性,可帮助系统查找程序路径。文章详细讲解了命令行参数表argv的实现原理,并通过代码示例展示了如何利用main函数参数实现指令选项功能。同时介绍了PATH、HOME、SHELL等常见环境变量的作用,以及使用env、echo、export等命令查看和操作环境变量的方法。最后阐述了环境变量的全局性和继承特性,以及本地变量与全局变量的区别。文章还说明了通过代码调用getenv系统调用获取环境变量的方式。
2025-07-31 00:02:38
2324
63
原创 【Linux】进程切换与优先级
本文介绍了Linux进程优先级和进程切换的核心概念。进程优先级决定了CPU资源分配的先后顺序,保存在PCB中,其中PRI表示优先级,NI为修正值,两者相加决定最终优先级。优先级范围设定为60-99,避免进程饥饿问题。进程切换涉及时间片机制和上下文保存,使用TSS记录执行状态。Linux采用O(1)调度算法,通过活跃队列和过期队列实现高效调度,新进程优先放入活跃队列。文章还解释了进程的竞争性、独立性、并行和并发等特性。
2025-07-25 23:13:35
1898
51
原创 【Linux】进程状态
本文介绍了操作系统中的进程状态概念,重点解析了Linux系统的七种进程状态。主要内容包括:1) 进程的三种基本状态:运行、阻塞、挂起;2) Linux内核中进程状态的具体实现,包括R(运行)、S(可中断休眠)、D(不可中断休眠)、T(停止)、Z(僵尸)等状态;3) 僵尸进程和孤儿进程的产生原理及其影响;4) Linux内核中进程管理的数据结构实现原理,包括如何通过偏移量访问结构体成员。文章还解释了PCB复用机制,说明了操作系统如何高效管理进程资源。这些概念对于理解操作系统进程管理机制具有重要意义。
2025-07-25 10:26:08
1302
35
原创 飞算JavaAI助你解放双手!
飞算JavaAI颠覆传统Java开发模式,通过四大核心功能显著提升开发效率:一键代码生成可在数秒内产出高质量可投产代码;智能逻辑优化精准识别性能瓶颈并提供重构方案;实时文档生成保持代码与文档同步;自动化测试覆盖各类场景降低故障风险。该工具将开发者从重复劳动中解放,使其专注于创造性工作,同时通过智能化手段全面保障代码质量,为Java开发带来革命性变革。
2025-07-21 11:30:34
718
28
原创 【Linux】初见,进程概念
计算机系统底层原理为核心,从冯诺依曼体系结构讲起,解析CPU、内存、输入输出设备的协同工作模式,点明内存协调CPU与外设速度差异的关键作用。进而阐述操作系统作为“软硬件管家”,通过系统调用接口和数据结构管理资源的机制。重点聚焦进程概念,详细说明进程是“PCB结构体+代码数据”的组合,深入解读Linux中task_struct结构体的构成,以及进程间父子关系。最后以fork()函数为突破口,结合代码与Linux指令实操,深入剖析子进程创建时PCB拷贝、写时拷贝机制,以及fork返回双值的特殊设计
2025-06-14 19:02:04
2273
79
原创 【Linux】LInux下第一个程序:进度条
本文介绍了在Linux环境下编写第一个程序——进度条的实现过程。首先讲解了回车换行符的区别及缓冲区原理,通过示例代码展示了缓冲区刷新问题。随后详细讲解了进度条的实现步骤:使用字符数组表示进度,通过fflush刷新缓冲区,添加百分比和旋转光标效果。最后模拟真实下载环境,实现动态更新的进度条功能。文章还提供了完整的代码实现,包括makefile文件,帮助读者在Linux系统上快速构建和运行进度条程序。
2025-06-07 22:44:26
3212
70
原创 【Linux】自动化构建-Make/Makefile
本文介绍了Linux中make/makefile工具的使用。makefile通过定义依赖关系和依赖方法实现自动化编译,提高开发效率。文章讲解了基本用法,包括一键编译和清理操作,解释了.PHONY伪目标的作用以及make的时间判断机制。还深入探讨了make的推导规则、变量使用、多文件编译处理等高级特性,并展示了makefile的优化路径,最终提供了针对大型项目的终极解决方案。通过示例演示了从简单到复杂的makefile编写过程,帮助读者掌握这一重要的工程管理工具。
2025-06-04 22:17:33
2359
52
原创 【Linux】编译器gcc/g++及其库的详细介绍
本文介绍了Linux中的C/C++编译器gcc/g++的使用方法和编译过程。主要内容包括:1) gcc基本语法格式和编译选项;2) 详细解析编译的四个阶段:预处理(-E生成.i文件)、编译(-S生成.s文件)、汇编(-c生成.o文件)、链接(生成可执行文件);3) 条件编译的实现原理;4) 动态库和静态库的概念、命名规则及区别对比。文章通过具体命令和文件示例,系统讲解了从源代码到可执行文件的完整编译流程,并解释了编译器自举的历史背景。
2025-06-04 22:15:13
2065
55
原创 【Linux】vim编辑器
Vim是Linux中功能强大但上手较难的文本编辑器,是vi的升级版。它主要有三种基本模式:普通模式(命令操作)、插入模式(文本编辑)和底行模式(文件操作)。常用操作包括:i进入插入模式,Esc返回普通模式,:wq保存退出。普通模式下可使用yy复制、dd删除、u撤销等命令;底行模式支持查找替换、分屏等功能。此外,Ctrl+v进入视图模式可实现批量注释等操作。掌握Vim能显著提升Linux环境下的文本编辑效率。
2025-05-30 13:03:27
2032
46
原创 【Linux】权限相关指令
本文介绍了Linux中的权限管理与相关指令。首先讲解了shell作为命令解释器的作用,接着详细说明账号切换命令su和su-的区别,以及sudo指令提权的使用方法。重点阐述了Linux权限机制,包括文件属性(rwx)和角色分类(拥有者/所属组/其他),并通过chmod命令演示权限修改操作。文章还探讨了目录权限的重要性、多用户隔离机制、缺省权限与umask的关系,以及粘滞位对共享目录的保护作用。最后解释了文件删除权限的判定规则,为Linux系统权限管理提供了全面指导。
2025-05-30 13:02:28
2699
71
原创 【Linux】初见,基础指令(续)
本文介绍了Linux系统中的多个常用指令及其功能。cat指令用于打印文件内容,支持行号编号和空行压缩;more和less指令用于分页显示文件内容,less功能更强大,支持搜索和行号显示;head和tail指令分别显示文件头部和尾部内容,支持指定行数;date指令用于显示和格式化时间,支持时间戳转换;cal指令查看日历;find指令用于查找文件;whereis指令查找命令位置;alias指令为命令取别名;grep指令在文件中搜索字符串;zip和unzip指令用于压缩和解压文件;rzsz指令用于Linux与Wi
2025-05-20 22:03:40
2698
59
原创 【Linux】初见,基础指令
本文介绍了Linux系统中一些常用的基础指令及其功能。首先讲解了pwd指令,用于显示当前所在路径;接着是ls指令,用于列出目录中的文件和子目录,常用选项-l可以显示详细信息。cd指令用于切换目录,支持绝对路径和相对路径。touch指令用于创建文件或修改文件时间戳,常用选项-a和-m分别用于修改访问时间和修改时间。mkdir指令用于创建目录,选项-p可以递归创建目录。rmdir和rm指令分别用于删除空目录和文件,rm的-r选项可以递归删除目录及其内容。man指令用于查询命令的使用方法,echo指令用于打印内容
2025-05-20 22:01:50
2935
58
原创 【C++】智能指针
C++中的智能指针,重点讨论了其设计思路、使用场景及标准库中的实现。智能指针基于RAII(资源获取即初始化)原则,通过类的生命周期管理资源,确保资源在异常抛出时仍能正确释放,避免内存泄漏。标准库提供了多种智能指针,如auto_ptr(已弃用)、unique_ptr(独占资源)、shared_ptr(共享资源)和weak_ptr(解决循环引用问题)。shared_ptr通过引用计数管理资源,而weak_ptr则用于打破shared_ptr的循环引用,避免内存泄漏。此外,智能指针还支持删除器,允许自定
2025-05-12 20:52:35
2879
58
原创 【C++11】异常
C++中的异常处理机制,包括异常的概念、抛出和捕获、栈展开、匹配处理代码、异常重新抛出、异常安全问题以及异常规范。异常处理允许程序在运行时检测并处理问题,通过throw抛出异常对象,并由匹配的catch块处理。栈展开过程在抛出异常后寻找匹配的catch块,若未找到则程序终止。异常重新抛出允许在捕获异常后重新抛出给外层处理。异常安全问题涉及资源泄漏,建议使用智能指针解决。C++11引入了noexcept关键字,用于指示函数是否可能抛出异常,但编译器不会强制检查。
2025-05-12 20:51:53
1267
42
原创 【C++11】类的新功能
上文我们学习了包装器:function和bind。function可以包装一切可调用对象,并用统一的调用方式调用不同的可调用对象。bind则可以控制函数参数个数本文我们来学习C++11的类中新增的一些功能。
2025-04-29 16:20:45
1111
59
原创 【C++11】包装器:function与bind
上文我们学了C++11中一个新的表达式:Lambda表达式。Lambda表达式可以在函数内部定义,其本质是仿函数本文我们来学习C++11的下一个新语法:包装器。
2025-04-29 16:16:24
981
43
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅