一、先记住四句话 构造顺序:基类 → 派生类;析构顺序:派生类 → 基类。 非虚函数看静态类型;虚函数看动态类型。 构造函数和析构函数中调用虚函数,不会向下分派到更派生的类。 基类析构函数最好声明为 virtual。 二、静态类型 vs 动态类型 A *pa = new C(); pa 的静态类型
1. 日志是干什么用的? 日志(Log)是记录程序运行状态、系统操作、异常信息等内容的记录文件。 主要作用包括: 调试与排错(Debug):在程序出现问题时,通过日志定位错误发生的位置和上下文。 系统监控:实时了解程序的运行状态(如CPU、内存、业务流程进度)。 审计与安全:记录用户操作历史,用于事
1. 概述 在 Linux 网络编程中,早期常使用 select 实现 I/O 多路复用。但 select 存在明显缺点: 采用轮询方式处理,监听的 fd 越多,效率越低; 受 fd_set 限制,默认最多监听 1024 个 fd; 每次调用都需要重新传入 fd 集合,用户态与内核态之间复制开销较大