- 博客(10)
- 收藏
- 关注
原创 C++ 引用机制详解(一):引用的本质、语法与常见误区
引用(reference)是某个变量的别名。也就是说,定义一个引用并不会产生新的对象或复制已有的值,它只是为已有变量起了另一个名字。对引用的操作,实际上就是对原变量的操作。int a = 10;// ref 是 a 的别名ref = 20;// 输出 20在上例中,对ref的赋值实际上修改的是a的值。引用是“无开销”的一层抽象,不需要指针的解引用操作,却具有指针一样的效果。虽然引用在语法上看起来与变量无异,但其底层实现本质上更接近指针编译器会在幕后用一个指针来实现引用。
2025-07-25 14:00:00
527
原创 理解指针与生命周期:内存管理的核心知识
一个指针指向了一块已释放或超出作用域的内存。虽然指针变量还在,但它指向的内容已经无效。理解内存分区:栈 → 自动管理;堆 → 手动管理;静态区 → 程序全程存在。不要返回局部变量地址:生命周期问题高发地。delete 后立即置为 nullptr:预防悬空使用。优先使用智能指针是现代 C++ 的标配。RAII 编程思想必须掌握:对象管理资源,对象销毁资源即释放。容器指针要小心:容器扩容后,原有地址可能失效。指针是 C++ 中最灵活、也最容易“翻车”的工具。
2025-07-24 20:30:00
596
原创 指针与内存布局:从字节到对象的底层认知
C++ 中的指针不仅仅是“存地址”的变量,它之所以如此强大,是因为背后有一整套对象内存布局规则在支撑。从基本类型到虚函数,从数组到结构体,理解它们的布局逻辑,是掌握指针真正威力的基础。
2025-07-22 08:00:00
609
原创 指针的本质:类型化地址与 C++ 类型系统的桥梁
在初学 C/C++ 时,指针常常被视为最让人头痛的概念之一。它到底是变量?是地址?是引用?理解了指针的“类型化”本质,才能真正掌握它的强大与危险。
2025-07-20 20:30:00
607
原创 QString 到底怎么存字符串?一文读懂它的共享机制和编码策略
QString 看似只是个简单字符串,其实背后藏着精巧的写时复制机制(Copy-on-Write),让它既高效又安全。本文从 UTF-16 编码、引用计数、共享内存到 detach() 的源码执行流程,全面拆解 QString 如何实现「拷贝不复制,写才复制」的魔法。同时总结多线程、混用 std::string 等常见坑,帮你更稳地用好这个 Qt 基础核心类。
2025-06-29 20:30:00
1195
原创 Qt 源码解读系列:QArrayData 篇 —— 容器内存管理的幕后核心
在 Qt 框架中,QArrayData是众多容器类(如QVectorQStringQByteArray等)背后不可或缺的基础设施,主要负责容器数据的内存管理引用计数和容量控制。它是 Qt 动态数组类能够高效支持数据共享、写时复制(copy-on-write)和动态扩展的核心原因。Qt 容器在内部使用QArrayData来统一管理内存和数据共享。当我们拷贝一个容器时,并不是复制数据区,而是多个容器实例持有指向同一个QArrayData的指针,QArrayData。
2025-06-21 11:50:30
873
原创 Qt 源码解读系列:QChar 篇 —— 字符存储的基石与实现奥秘
本文通过源码分析的方式,深入解析了 Qt 中的 QChar 类。首先介绍了字符编码的基本概念,区分了数据流格式(文件或网络中的编码,如 UTF-8、GBK)和存储格式(程序内部的编码,Qt 采用 UTF-16 存储在 QChar 中)。其次,详细解释了 QChar 如何通过**代理对(Surrogate Pair)**支持超过 BMP 的 Unicode 字符,解决了 emoji 等字符的存储问题。文章旨在帮助读者理解 Qt 的字符处理原理,避免常见的乱码与编码问题,为日常开发中的文本处理和国际化打下坚实基
2025-06-09 19:24:27
1106
原创 QCustomPlot实现坐标轴反转:纵轴为X轴,横轴为Y轴
QCustomPlot有四个轴:xAxis(下轴)、yAxis(左轴)、xAxis2(上轴)、yAxis2(右轴),默认使用下轴作为key值轴,左轴作为value轴。也就是你在添加图像时不添加坐标轴作为参数时,QCustomPlot给你的缺省坐标轴,符合我们的直觉。第一个参数指定key值所在的轴,第二个参数指定value值所在的轴。
2024-10-27 10:45:25
911
1
原创 QGraphicsLineItem 绘制箭头连接类 --方法及踩坑(问题汇总)
在使用QGraphicsView架构制作流程图类的界面时,需要用带箭头的连线将两个item连接起来,来表明连接关系,本文介绍了箭头连接类的方法和相关问题。
2024-07-17 20:47:40
2384
原创 QGraphicsProxyWidget 使用笔记
最近在用QGraphicsView架构进行项目开发,最开始用QGraphicsItem及其衍生类来构建我自己的类,放置在scene里。但是后来发现QGraphicsItem无法使用QSS来进行样式设定,只能用QStyle来设置,而看QStyle的设置又有点复杂,还是觉得QSS方便开发和后续维护。于是用QGraphicsProxyWidget来代替以前的item,里面套壳自己想要的界面,过程中遇到不少坑,在此记录下来。
2024-07-16 20:16:16
1239
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅