C++
文章平均质量分 68
陆续整理上传以前的一些积累
life is learning
这个作者很懒,什么都没留下…
展开
-
QT学习之入门
1 QT简介1.1 跨平台图形界面引擎1.2 历史1.3 优点 跨平台 接口简单,容易上手 一定程度上简化了内存回收1.4 版本 商业版 开源版1.5 成功案例 linux桌面环境 KDE 谷歌地图 VLC多媒体播放器2 创建第一个Qt程序点击创建项目后,选择项目路径以及给项目起名称。名称 - 不能有中文,不能有空格。路径 - 不能有中文路径。默认创建有窗口类,Mywidget,基类有三种选择:QWidget、QMa原创 2021-12-13 23:09:13 · 1163 阅读 · 0 评论 -
从深拷贝、浅拷贝到引用计数和循环引用,再到强指针和弱指针的实现和分析
深拷贝和浅拷贝对内存资源使用的讨论,必然要先从深拷贝浅拷贝说起。深拷贝的优点:每一个的对象(哪怕是通过拷贝构造函数实例化的对象)的指针都有指向的内存空间,而不是共享,所以在对象析构的时候就不存在重复释放或内存泄露的问题了。深拷贝的缺点:内存开销大。浅拷贝优点:通过拷贝构造函数实例化的对象的指针数据变量指向的共享的内存空间,因此内存开销较小。浅拷贝缺点:对象析构的时候就可能会重复释放或造成内存泄露。鉴于深拷贝和浅拷贝的优缺点,可采用引用计数技术,既减小了内存开销,又避免了堆的重复释放或内存泄露问题原创 2021-02-02 21:14:47 · 169 阅读 · 0 评论 -
C++11 & 14 & 17新特性及使用方法
nullptr:用来替代NULL,区别空指针、0。nullptr的类型为nullptr_t。constptr:显式的生命函数或对象构造函数在编译器会成为常量表达式。iterator:迭代器,为容器提供统一的遍历方式。 auto:自动类型推导。委托构造:Base(int i) : Base,同一个类中一个构造函数调用另一个构造函数(仅能委托一个)。继承构造:using Base::Base; 派生类委托使用基类的构造函数。override:显示声明派生类重写基类的虚函数。final:final声明原创 2021-01-31 20:29:41 · 506 阅读 · 0 评论 -
静态库、动态库制作和使用步骤
静态库制作1.编译源代码生成.o文件gcc -c src/add.c -o output/add.ogcc -c src/add.c -o output/sub.o2.制作静态库ar rcs lib/libmymath.a output/add.o output/sub.o3.使用静态库编译可执行程序gcc src/test.c lib/libmymath.a -I include/ -o a.out 动态库制作1.生成位置无关的.o文件gcc -c src/add.c -o ou原创 2021-01-26 15:36:09 · 117 阅读 · 0 评论 -
Makefile小结
预处理:gcc -E hello.c -o hello.i 1.展开宏定义(#define) 2.处理所有条件预编译指令(#if、#ifdef、#else、#else if、#endif) 3.处理#include预编译指令,将被包含的文件插入到该项预编译指令当中(递归执行) 4.删除所有的注释 5.保留所有#progrma编译器指令,因为编译器需要使用它们编译:编译过程就是把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件。原创 2020-12-16 17:16:23 · 256 阅读 · 1 评论