上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 33 下一页
摘要: C++多线程进阶 1. 异步任务 std::async 和 std::future #include <future> #include <iostream> int compute() { return 123; } int main() { auto fut = std::async(std:: 阅读全文
posted @ 2025-05-24 13:24 _Sylvan 阅读(25) 评论(0) 推荐(0)
摘要: C++ 信号处理 C++ 中的信号处理(signal handling)指的是程序在运行过程中响应特定异步事件(通常由操作系统发送的信号)的能力。信号机制在 UNIX/Linux 系统中较常见,主要用于处理诸如中断、终止、算术错误、非法访问等异常事件。 信号 信号是一种异步通信机制,由操作系统发送给 阅读全文
posted @ 2025-05-24 12:43 _Sylvan 阅读(122) 评论(0) 推荐(0)
摘要: C++ 预处理器 C++ 的预处理器(Preprocessor)是一个在编译之前运行的文本处理工具,它主要用于对源代码进行宏替换、文件包含、条件编译等操作。预处理器指令都是以 # 开头的,在真正的编译过程开始前执行。 常用的预处理指令 定义宏:#define #define PI 3.14159 # 阅读全文
posted @ 2025-05-24 12:24 _Sylvan 阅读(50) 评论(0) 推荐(0)
摘要: C++ 模板 C++ 的模板(Template)是一种泛型编程机制,允许编写与类型无关的代码。模板主要分为两种: 函数模板(Function Templates) 类模板(Class Templates) 这让代码在多个类型之间重用,避免了重复实现逻辑。 函数模板 交换两个变量: template 阅读全文
posted @ 2025-05-24 12:05 _Sylvan 阅读(15) 评论(0) 推荐(0)
摘要: C++ 智能指针 智能指针(Smart Pointer)是 C++ 提供的一种用于自动管理动态分配内存的工具,能够在对象生命周期结束时自动释放资源,从而减少内存泄漏、重复释放和悬挂指针等问题。该机制从 C++11 开始引入标准库。 智能指针本质上是一个封装了原始指针的类模板对象,它负责: 自动释放所 阅读全文
posted @ 2025-05-24 01:55 _Sylvan 阅读(52) 评论(0) 推荐(0)
摘要: C++ 动态内存 C++ 中的动态内存是指在运行时(而不是编译时)根据程序需要分配和释放内存的机制。与静态内存(如栈上分配的变量)相比,动态内存可以提供更大的灵活性,但也更容易出错(如内存泄漏、悬挂指针等)。 堆 vs 栈 方面 栈(Stack) 堆(Heap) 分配方式 编译器自动分配 程序员手动 阅读全文
posted @ 2025-05-24 01:34 _Sylvan 阅读(42) 评论(0) 推荐(0)
摘要: C++ 异常处理 C++ 的异常处理机制是通过 try、throw 和 catch 三个关键字来实现的,其设计目的是在程序发生错误时提供一种清晰的处理流程,而不是像 C 一样靠返回值或错误码。 try { // 可能抛出异常的代码 ... throw 异常对象; // 抛出异常 } catch (异 阅读全文
posted @ 2025-05-23 22:13 _Sylvan 阅读(87) 评论(0) 推荐(0)
摘要: C++ 文件和流 C++ 的文件和流(File and Stream)是 C++ 标准库中用于输入输出(I/O)的核心机制之一。C++ 提供了一套强大且灵活的类体系来支持文件读写操作,这些类主要定义在 <fstream>、<iostream> 和 <sstream> 等头文件中。 流的基础概念 流是 阅读全文
posted @ 2025-05-23 21:50 _Sylvan 阅读(63) 评论(0) 推荐(0)
摘要: C++ 多态 C++ 中的多态(Polymorphism)是面向对象编程(OOP)的核心特性之一,它允许程序在运行时根据对象的实际类型调用对应的方法,从而实现接口的统一调用,行为的差异化实现。多态分为两大类:静态多态(编译时多态)、动态多态(运行时多态)。 静态多态 静态多态在编译期间就可以确定调用 阅读全文
posted @ 2025-05-23 21:32 _Sylvan 阅读(41) 评论(0) 推荐(0)
摘要: C++ 运算符重载 在 C++ 中,运算符重载(Operator Overloading)允许为自定义类型(类/结构体)定义运算符的行为,从而使对象像内建类型一样参与运算操作。常用于提升代码可读性和可维护性。 运算符重载的函数格式如下: 返回类型 operator运算符(参数列表) { // 实现 阅读全文
posted @ 2025-05-23 21:07 _Sylvan 阅读(361) 评论(0) 推荐(0)
摘要: C++ 类型限定符简介 严格意义的类型限定符(Type Qualifiers) 这些直接限定类型的行为,是最正统的“类型限定符”: 限定符 说明 const 不可修改,编译期常量或修饰函数签名(如 const int*) volatile 禁止优化,值可能由外部(如硬件)改变 mutable 允许 阅读全文
posted @ 2025-05-23 18:26 _Sylvan 阅读(27) 评论(0) 推荐(0)
摘要: C++ 拷贝构造与拷贝赋值 拷贝构造函数 在 C++ 中,拷贝构造函数(Copy Constructor) 是一种特殊的构造函数,用于使用一个已有对象来初始化一个新对象。它的典型声明形式如下: ClassName(const ClassName& other); #include <iostream 阅读全文
posted @ 2025-05-23 18:25 _Sylvan 阅读(52) 评论(0) 推荐(0)
摘要: C++ ODR ODR = One Definition Rule,字面意思是: “程序中每个实体(如变量、函数、类、模板)在整个程序中必须只有一个定义。” ODR 适用的内容 变量(全局、类静态) 函数(包括普通函数和成员函数) 类、结构体、联合体、枚举 模板(类模板和函数模板) 类型别名(typ 阅读全文
posted @ 2025-05-23 18:24 _Sylvan 阅读(109) 评论(0) 推荐(0)
摘要: C++ 友元 在 C++ 中,类的成员通常是私有的(private)或保护的(protected),只能被该类的成员函数或其派生类访问。但是有时候,我们希望让某些“外部”函数或类也能访问这些私有成员。这就用到了 C++ 的 friend 机制。 三种友元声明方式 类型 关键词声明方式 功能说明 友元 阅读全文
posted @ 2025-05-23 18:22 _Sylvan 阅读(42) 评论(0) 推荐(0)
摘要: static 关键字 静态的局部变量:函数退出也保留值 static 定义的局部变量在函数第一次调用时初始化,之后不会再次初始化;在随后的函数调用中会保留之前的值。它具有静态存储期,即在整个程序运行期间始终存在。 void countCalls() { static int counter = 0; 阅读全文
posted @ 2025-05-23 18:20 _Sylvan 阅读(41) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 33 下一页