- 博客(14)
- 收藏
- 关注
原创 [c++}多态
1.多态2.运行时的多态2.1运行时多态的实现条件2.3运行时多态的原理底层实现2.3运行时多态的直观体现2.2 多态的核心:指针 / 引用的实际指向决定函数调用2.2虚函数的定义2.4定义虚函数的规则1.定义格式:virtual 返回类型 函数名(参数表)只能将类的成员函数定义为虚函数。当一个类的成员函数被定义为虚函数,则某一个成员函数被定义为虚函数,则由该类派生出的所有派生类中,派生类继承出来的虚函数具有重写作用,该函数始终虚函数的特征(三同:函数名,参数类型,返回类型相同)
2026-01-19 17:35:22
743
原创 【c++11新特性】【智能指针】【shared_ptr】
1.shared_ptr分析和使用2.shared_ptr的创建3.shared_ptr代码的实现31辅助函数功能介绍`shared_ptr` 操作指南1. `get()` 函数2. `reset()` 函数3. `release()` 函数4. `swap()` 函数6. 解引用操作符7. `unique()` 函数3.shared_ptr与STL库的结合使用3.1为什么要引入 std::shared_ptr 与 STL 库结合?3.2常见结合场景与用法shared_ptr。
2026-01-19 17:24:32
822
原创 【c++】【STL库-vector】
1.定义vector2.访问vector中的元素2.1 at访问2.2 operator[]访问2.3迭代器访问2.3.1普通迭代器2.3.2 常性迭代器2.3.3 逆置迭代器2.3 at和operator[]的区别\3.插入元素向vector3.3 insert3.4 emplace_back和push_back区别4.reserve和resize5.assign6.迭代器失效6.1迭代器失效本质6.2迭代器失效场景C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素。
2025-12-28 22:01:41
941
原创 c++[继承】
一、继承和派生1.1继承的概念和定义1.2编制派生类的步骤(四步)二、继承方式2.1两层继承关系中的数据成员(可见性和访问控制)2.1公有继承(“是一个”)2.2私有和保护继承("组合")三、同名隐藏3.1成员属性的同名隐藏3.2成员函数的同名隐藏四、赋值兼容给规则五、继承关系中的构造函数和析构函数5.1 继承关系中构造的顺序和析构顺序父类(基类,Base Class):被继承的类,包含通用的属性和方法。
2025-11-09 20:37:13
902
原创 【linux】-I/O复用-select-poll-epoll
一、select1.select函数2.代码二、poll1.poll函数2.代码三、epoll2.epoll函数3.代码四、俩种触发模式4.1LT模式4.2ET模式4.3ET模式的优点2.epoll(ET模式)代码四、select、poll、epoll引入I/O复用的必要性在前期课程中,我们探讨过通过多线程或多进程实现多个客户端连接服务器的方法。然而,当面对大量并发连接时,这种方案会导致系统创建过多的线程。更严重的是,当部分线程发生阻塞时,会造成严重的资源浪费。
2025-10-30 17:15:46
978
原创 c++入门基础—new与delete以及c++11的新特性(auto,范围for)
一、new/delete1.c语言中的动态内存申请2.c++中的动态内存申请2.1new的运算符的使用``2.2new的函数方式的使用2.3定位new2.3.1 定位new的定义3.new和malloc区别4.free和delete的区别二、auto1.auto类型推导2.auto的限制3.auto可以推导函数的返回类型定位 new(Placement new)是 C++ 中 new 运算符的一种特殊用法,允许在预先分配的内存空间上直接构造对象,无需额外分配内存。作用。
2025-10-30 17:14:34
870
原创 网络编程-详解TCP和UDP
1.tcp协议2.tcp协议的实现流程2.1服务器端相关函数2.2代码(客户端和服务器端)3.udp协议实现辅助函数(地址处理)3.1函数实现3.2代码4.tcp协议的应用4.1http协议4.2http协议实现的流程4.2myhttp协议5.tcp协议和udp协议的特点6.tcp/ip协议中常见的问题6.1透彻理解三次握手和四次挥手5.2为什么采用三次握手而非两次握手?5.3四次握手为什么可以变为三次?5.4time_wait问题5.3粘包问题和解决方法。
2025-10-22 09:18:43
642
原创 进程间通信(IPC机制)-管道-信号量-共享内存-消息队列
1.信号量1.1原理:信号量本质上是一个计数器,用于控制多个进程对共享资源的访问。它通过 P 操作(等待操作,信号量减 1)和 V 操作(释放操作,信号量加 1)来实现对资源的互斥访问或控制并发访问的数量。2.管道2.2有名管道2.2 无名管道3.消息队列3.1理解消息队列3.2函数实现4.共享内存4.1 管道通信的弊端4.2 共享内存的设置4.3共享内存的缺陷什么是进程间通信?
2025-09-18 15:01:58
1393
原创 [c++]之static
有该类型实例化的所有对象,共享系统为静态成员分配的一个存储空间,而这个存储空间是程序执行main函数之前分配的,在实例化对象时不在为静态成员分配空间。结论:错误的代码,静态变量只能在类外进行初始化,但是他不可以使用构造函数进行初始化,原因:如果你在main中创建了多个对象,他们都会调用构造函数,那么这就会违背静态成员只初始化一次的特点。5.含有静态成员变量的类的大小,它是不计算静态成员变量的大小的,因为它处于数据区,是所有对象所公有的,不是某个对象的所属。二、C语言和c++中的static的区别。
2025-09-11 14:45:28
362
原创 C++ 构造函数的主要用途
因此表达式a=y中的y会被使用,但这里存在类型不匹配的问题:无法直接将int类型赋值给类对象。不过由于构造函数具有类型转换功能,表达式a=(x,y)实际上等价于Int a(y),也就是Int a(30)。从代码中可以看出,当整型变量x要赋值给类对象a时,虽然理论上类型不匹配会导致错误,但由于类中构造函数的类型转换功能,编译器能够将int类型隐式转换为类对象。可以将类比作"模板"或"设计图纸",而对象则是根据这个模板制造出的"实物"。在C++中,这种通过构造函数实现的隐式类型转换被称为"转换构造函数"。
2025-08-15 20:55:24
387
原创 inux 静态库 vs 共享库:区别、用法及选型指南
静态库:在计算机编程中,静态库(Static Library)是一种包含预编译代码的文件,它会在程序编译阶段被完整地复制到最终的可执行文件中。动态库(Dynamic Library):也称为共享库(Shared Library),是一种在程序运行时才被加载并链接的代码库,与静态库在编译阶段就被完整嵌入可执行文件的方式不同。
2025-08-15 12:07:08
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅