- 博客(15)
- 收藏
- 关注
原创 C++模板类型
和基本用法一致,只是这里的参数变成了两个,显示指定的时候也要指定两个,且顺序不能乱。如果没有给定具体的参数,则使用默认值参数。这里模板函数的模板不是传入类型,而是。如下所示,这里将类实例化对象的时候。类型安全(比 void* 更安全)代码膨胀(多个类型实例化多个版本)<int>:显示指定模板类型。显示的通过<类型>去指定类型。intBox:实例化对象名。编译时多态(无运行时开销)编译时间长(模板实例化)(42)传入的初始化值。,再编译时就确定其大小。通过参数去推导模板类。模板参数存在默认值,
2026-01-16 14:13:31
64
原创 轮询 回调 回滚
将一个函数(回调函数)作为参数传递给另一个函数,并告诉它:“当你完成某件事或者发生某个事件时,请调用一下我给你的这个函数”。客户端(或调用方)会以固定的时间间隔,不断地向服务器(或被调用方)发起询问:“你有新数据吗?它指的是当某个操作(如一系列的数据修改、一个软件版本的发布)失败或产生问题时,系统能够撤销所有已做的更改,使数据或系统状态恢复到执行该操作之前的样子。你通过 epoll_ctl 告诉内核:“如果这个 socket 有数据可读了(事件),请把它放到就绪队列里(触发回调)”。实现简单,容易理解。
2025-11-23 11:42:12
269
原创 C++日志管理系统笔记(2)
简化日志记录的代码,减少重复的工作(如文件名、函数名、行号的传递)。根据不同的日志级别,日志的输出会受到控制,只有当当前的日志级别满足条件时,相关的日志才会被记录。有助于调试和维护程序,且在使用这些宏时,只需要选择合适的宏来记录日志,无需手动编写繁琐的日志。
2025-10-25 20:00:23
403
原创 c++笔记 虚函数与多态(2)
协变:基类中返回基类指针,派生类中返回派生类指针三同规则:返回值 函数名 参数类型 否则被认为是同名覆盖虚表最后一项用0填充类里面有虚函数,才展开继承,否则没有意义。
2025-10-24 21:37:46
196
原创 c++笔记 虚函数与多态(1)
是面向对象编程中的重要特性,通过继承和接口实现同一方法在不同对象上的不同表现,发生在运行时,属于动态绑定。,是在编译时就确定方法调用的具体实现。也就是说,在代码编译阶段,编译器就已经能够确定方法的调用方式。(函数重载):主要是为了同一个函数名可以处理不同的参数类型或数量,发生在编译时,属于静态绑定。实现,早期静态绑定,通过名字粉碎技术进行,主要是为了同一个函数名可以处理不同的参数类型或数量。根据对象的实际类型来决定调用哪个方法实现。,根据实际对象的类型来决定调用哪个版本的方法。通过方法重写实现,即。
2025-10-21 23:59:40
229
原创 复制数组的方法
源范围的结束迭代器(或指针),指向需要复制的最后一项的后一个位置(不包含该位置)。:目标范围的起始迭代器(或指针),即复制数据的目标位置。它逐个元素地将数据从源范围复制到目标范围。:源范围的起始迭代器(或指针),指向需要复制的第一项。:目标内存地址,即数据要复制到的位置。:源内存地址,即数据从哪里复制过来。中的元素复制到目标范围,从。:源数组,表示要复制的数组。:目标数组,表示复制到哪里。:源数组中开始复制的位置。:目标数组中开始存放位置。
2025-10-19 18:22:45
183
原创 C++ 日志管理系统笔记(1)
在日志管理系统中采用强枚举类型+数组索引的结合,避免了直接打印枚举类型时输出整型数(如1,2)导致读时出现误导的情况,通过将枚举值映射到字符串,可以更容易地调试和追踪日志输出。默认情况下,每个枚举常量的值通常是数字,并且它们可以直接使用数字或其他原始数据类型。通常要求枚举的值具有固定的数据类型,并且枚举的常量值不能被隐式转换为其他类型。输出格式如图,先将强枚举类型转化为int类型,在进行索引输出。,是指对枚举的值进行严格类型控制的枚举类型。,通常是指不强制类型检查的枚举。1.一般的枚举类型和强枚举类型。
2025-10-18 17:04:25
147
原创 c++笔记 静态成员
静态成员在程序运行时分配内存,而不是在每个对象的实例化时分配内存。因此,静态成员变量只有一份副本,所有类的实例共享这份副本。(在数据区不会随着函数的结束而释放)所以其值不会更新,会记忆为上一次调动的结果。任何一个对象和变量只能被初始化一次,不能被多次初始化,但是可以多次赋值。只能访问静态成员变量和静态成员函数,不能访问实例成员。可以通过类名直接调用,也可以通过对象调用,但。改变一个对象中的静态成员会影响到所有其他对象。,因此可以在没有创建对象的情况下访问它们。含有静态变量的函数,因为函数释放以后,
2025-10-13 14:36:38
123
原创 c++笔记 lambda表达式
可以通过this在表达式内修改this指针的指向之物(没有修改this。加上 mutable 可以在表达式内修改副本,但是正本不会改变,捕获程序中this 变量(静态成员方法没有this指针)捕获可以获得局部变量的值,但是不允许修改(只读)副本的建立是在定义时就建立,不是在调用的时候创建副本。ix进行引用捕获,其他值捕获,引用捕获不会生成副本。捕获相当于得到副本 不可以直接修改正本!捕获外部所有变量 (用到谁捕获谁)捕获bar 变量 ,同时不捕获其他变量。除了ix 是值捕获,其他引用捕获。
2025-09-27 11:35:41
262
原创 左值引用,右值引用
临时变量不随函数的消亡而消亡(static修饰,此时在data区,返回的tmp地址依旧是tmp变量,不会被其他量占据,可以用引用返回。左值引用可以通过具名来引用右值,右值引用只能通过强转/静态转换来引用左值。图上tmp临时量已消亡,返回tmp的地址,此时地址内数据会被其他量占据。右值引用可以通过引用去更改值,但是万能引用不行。使用右值引用可以固化延长将亡值对象的生命周期。同时,进行右值引用以后会变成具名右值(泛左值。函数中定义的临时变量不能以引用的形式返回。此时可以使用左值引用来引用。
2025-09-18 16:17:36
180
原创 指针和引用的区别
7.使用sizeof,对指针是得到指针变量的大小,对引用是得到变量的大小。6.指针作为形参要判断合法性(判空),引用不需要。8.指针的级数理论上没有限制,但是引用只有一级。对引用:直接反应到引用的实体,使实体++3.指针解引用要加“*” 引用可以直接用。4.指针可以发生改变,存储其他变量的地址,2.程序为指针分配内存,但是不为引用分配。对指针:会使指针指向下一个实体的地址。不可以对局部变量以引用或指针的方式返回。1.指针是存储地址,引用是别名。5.指针可以为空,引用不可以。引用被当作指针来处理!
2025-09-18 16:16:35
164
原创 左值,右值,将亡值
将亡值:在表达式运行或计算过程中产生的临时量(字面值或不具名对象)或临时对象。注:这里c是左值,左值不可以赋值给z,所以产生临时量(将亡值)赋值给z。注:tmp生存周期有限,所以调用拷贝构造函数创建将亡值对象,用将亡值来赋值。注:这里给出的是纯右值的将亡值,所以不能被赋值。左值:可以被取地址的值(具名对象或具名对象)注:只存在于运行和计算过程中,计算完成则销毁。右值:不可以被取地址的值(不具名)注:版本不同将亡值会被优化。
2025-09-17 14:42:54
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅