- 博客(12)
- 收藏
- 关注
原创 函数指针函数指针
(1)对于一个函数来说,它是由一段代码组成,这段代码也是存储再内存区域中,因此,也可以获取函数的地址。此外,还可以使用auto关键字,定义函数指针。例如:我们定义了一个函数指针ptr,将它初始化为函数 multiply的地址,就可以将函数指针ptr作为一个函数调用了。当我们定义一个函数指针时,定义的是这个指针所指向函数的接口形式,因此凡是符合这样接口的函数,都可以使用这样的指针来指向。也可以使用typedef定义一个没有指针的函数类型MyFuncTypePtr,然后在代码中使用指针的形式定义函数指针。
2026-06-20 21:28:03
156
原创 [c++面试]虚函数表和虚函数指针
取 vptr 的值:编译器知道speak()是虚函数,所以直接从对象开头的0x100地址读取vptr的值,得到它指向的Dog::vtable的地址。对于一个对象,我们看他有多大,以前只会看他哪些数据成员,但它有哪些函数我们是不关心的,因为是属于类共有的东西,并不是每个对象都要有拷贝,而数据成员,除非他是静态的,否则每个对象都有他自己的拷贝,这些拷贝的值不同,也就是状态不同,就可以用来区分不同的对象了。刚开始没有运行的时候 类是不在内存中的,运行时,创建一个子类对象,子类对象在内存中是这样的。
2026-04-22 11:29:03
48
原创 vistual studio制作和使用动态链接库
1. 项目结构 • regression_lib.h:对外声明接口 • regression_lib.cpp:全部核心代码(模型、训练、预测) • main.cpp:仅主函数,调用 DLL 2. 第一步:制作 DLL(核心) 1. 把 main.cpp 从项目排除(我们的目的是将regression_lib制作成动态库的,main.cpp是用来使用该动态库的) 2. 项目 → 属性 → 配置类型 = 动态库 (.dll) 3. 模式必须选 Release + x64 4. 配置 LibTorch 依赖附加包
2026-04-20 20:13:58
380
原创 操作系统中 malloc 的实现原理(面试标准精简版)
malloc 是 C 标准库(glibc)提供的堆内存分配库函数,并非直接的系统调用,其核心是封装系统调用、通过内存池管理堆内存,平衡分配效率与内存碎片问题,底层依赖操作系统的内存管理机制。:用户调用 free 时,将内存块放回空闲链表,并合并相邻空闲块,减少内存碎片;:用户申请内存时,直接从空闲链表中匹配一块大小合适的空闲块分配(若块过大则拆分,剩余部分放回链表),无需进入内核态。特点:分配 / 释放开销低,适合频繁的小内存申请,但易产生内存碎片,仅堆顶空闲内存可直接归还操作系统。
2026-04-14 16:20:10
188
原创 仿函数解析
仿函数(也叫函数对象,Functor)是一个能形式函数功能的类,本质是重载了operator()的类 / 结构体。它的行为像普通函数,可以像函数一样被调用(obj()同时它是一个类的对象,能在对象中存储额外的状态(成员变量)完美解决了普通函数「只能传固定参数、无法携带额外信息」的痛点2、为什么需要仿函数?统计中长度小于指定阈值的字符串个数,用算法实现。(1)普通函数的局限性方案1:阈值写死为5✅ 符合count_if对「一元谓词(1 个参数)」的要求。
2026-04-09 15:45:58
51
原创 左值引用、右值引用、常量引用
左值:有名字、可寻址、生命周期持久的对象(如变量、数组元素、*p)只能绑定非 const 左值,不能绑定右值(字面量、临时对象)。右值:临时值、没名字、用完就销毁的值(字面量、临时对象)核心用途:只读使用对象,不拷贝、不修改,安全高效。(2)const 左值引用(const T&)但右值引用会让右值拥有一个可寻址的名字。语法:类型&& 引用名 = 右值;(1)普通左值引用(T&)核心用途:修改实参、别名。右值引用不能绑定左值,左值、右值均可绑定。右值本来不能取地址;
2026-04-08 21:03:19
50
原创 深拷贝和浅拷贝
(1)深浅拷贝是面试经典问题,也是常见的一个坑浅拷贝:简单的赋值拷贝操作深拷贝:在堆区重新申请空间,进行拷贝操作类里有一行m_height是!它不存身高数字,!这行是在申请一块内存存身高。(2)什么是浅拷贝?
2026-04-08 21:00:39
46
原创 SQL学习(尚硅谷MySQL跟练笔记)
约束是表级的强制规定。可以在创建表时规定约束(通过语句),或者在表创建之后通过语句规定约束。约束的分类根据约束数据列的限制,约束可分为:单列约束:每个约束只约束一列多列约束:每个约束可约束多列数据根据约束的作用范围,约束可分为:列级约束:只能作用在一个列上,跟在列的定义后面表级约束:可以作用在多个列上,不与列一起,而是单独定义根据约束起的作用,约束可分为:NOT NULL 非空约束,规定某个字段不能为空UNIQUE 唯一约束,规定某个字段在整个表中是唯一的。
2026-03-03 16:27:27
1058
原创 QT学习笔记——按键QPushButton设置信号与槽
Qt的信号和槽机制是其事件处理系统的核心。这种机制允许对象之间的通信,而不需要它们知道对方的 具体实现。以下是Qt信号和槽的几种常见连接方式的简要概述。
2025-12-16 13:31:21
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅