
c++
3333333_
大部分都是记录云笔记,有时候复制过来就挺乱的,而且可能复制1年或者几个月前记录的。随缘吧。
展开
-
makefile文件
makefile文件的编写可以很复杂,复杂到我不想看,在实际开发中,用不着那么复杂的makefile,我追求简单实用的方法,腾出更多的时间和精力去做更重要的事情,那些把makefile文件写得很复杂的程序员在我看来是吃饱了撑的。在软件的工程中的源文件是很多的,其按照类型、功能、模块分别放在若干个目录和文件中,哪些文件需要编译,那些文件需要后编译,那些文件需要重新编译,甚至进行更复杂的功能操作,这就有了我们的系统编译的工具。在makefile中的目标,依赖,命令或其他地方引用变量时,变量会被它的值替代。原创 2023-08-10 22:49:47 · 114 阅读 · 0 评论 -
cmake学习
可以用来指定工程的名字和支持的语言,默认支持所有语言PROJECT (HELLO) 指定了工程的名字,并且支持所有语言—建议PROJECT (HELLO CXX) 指定了工程的名字,并且支持语言是C++PROJECT (HELLO C CXX) 指定了工程的名字,并且支持语言是C和C++该指定隐式定义了两个CMAKE的变量_BINARY_DIR,本例中是 HELLO_BINARY_DIR。原创 2023-08-10 22:49:02 · 206 阅读 · 0 评论 -
Ubuntu22.04搭建CPP开发环境
Include AutoComplete #头文件自动补全。C/C++ Advanced Lint #静态检查。C/C++ Extension Pack #扩展包。C/C++ Snippets #常用代码片段。Ubuntu22.04搭建CPP开发环境。Error Lens #错误高亮显示。Code Runner #运行。C/C++ #开发必备。原创 2023-04-30 10:06:09 · 515 阅读 · 0 评论 -
s3fsfuse调试
这里由于是调试fuse操作,所以使用attach process的方式调试,方式参照《vscode使用attach process调试进程》这篇笔记。s3fs_create(跟goofys一样创建一个0大小的空文件)readdir后面有5次 s3fs_getattr。libfuse.so里面代码暂时不知道怎么跳进去。所以我这里挨个点进定义的首行代码打上断点。s3fs_write (写入文件内容)一、测试ll /mnt/s3。原创 2023-02-13 22:58:29 · 251 阅读 · 0 评论 -
vscode调试makefile项目
s3fs c++ vscode原创 2023-01-31 23:23:38 · 4033 阅读 · 0 评论 -
vscode使用attach process调试进程
s3fs vscode原创 2023-01-30 20:56:03 · 3269 阅读 · 0 评论 -
1 C++对象布局总览
那么point2D的指针p指向一个point3D的对象,当通过这个指针调用虚函数的时候,它的调用路径就是 先找到虚表指针->再找到虚表->再找到虚表中的项->然后根据虚表中的项(也就是找到了虚函数的地址)就可以调用了。调用非虚函数和普通函数的效率是没有差异的,通过多态的方式调用虚函数和直接调用虚函数不一样,只有通过多态的方式调用虚函数的时候效率稍微低一些,因为中间经过了一层虚表,通过虚表指针找到虚表,再找到函数的地址才能调用。现有Point2D的虚表指针,指向Point2D的虚函数表(第一个虚函数的地址)原创 2023-01-10 20:55:09 · 113 阅读 · 0 评论 -
CPP解决重复定义
c++原创 2023-01-09 21:14:42 · 468 阅读 · 0 评论 -
9 async future packaged_task promise
c++原创 2023-01-09 21:12:34 · 76 阅读 · 0 评论 -
8条件变量
c++原创 2023-01-09 21:07:20 · 67 阅读 · 0 评论 -
单例设计模式共享数据分析 解决 call_once
c++原创 2023-01-09 21:06:47 · 99 阅读 · 0 评论 -
C++创建多个线程、数据共享问题分析
c++原创 2023-01-09 21:05:21 · 283 阅读 · 0 评论 -
C++线程传参详解
c++原创 2023-01-09 21:04:11 · 1836 阅读 · 0 评论 -
并发与多线程
c++原创 2023-01-09 21:01:55 · 64 阅读 · 0 评论 -
std source_location 获取文件名行号
c++原创 2023-01-09 21:01:20 · 78 阅读 · 0 评论 -
CPP 如何在main函数之前执行代码
c++原创 2023-01-09 21:00:47 · 163 阅读 · 0 评论 -
C语言 C++的基础六大块的学习路线
六大件:c++语法 操作系统 网络编程 数据结构 设计模式 项目。原创 2023-01-09 20:59:56 · 71 阅读 · 0 评论 -
学习c++经常会遇到的问题!到底应该怎么学c++?这个方法收藏好!
3 默念,比如学TCP,比如快走神的时候,就默念TCP TCP TCP .... 忘记恐惧和焦虑。1 互动,可以问问自己,比如,什么是多态,为什么使用多态,怎么样使用多态。2 带着问题去思考 带着问题去学习。三、学了很久感觉啥也不会。原创 2023-01-08 20:19:06 · 260 阅读 · 0 评论 -
谈一谈C++的内存对齐
4:如程序中有#pragma pack(n)预编译指令,则所有成员对齐以n字节为准(即偏移量是n的整数倍),不再考虑当前类型以及最大结构体内类型。1:数据成员对齐规则:结构/类(struct/class)的数据成员,第一个数据成员放在offset为0的地。3:收尾工作:结构体的总大小,也就是sizeof的结果.必须是其内部最大成员的整数倍.不足的。方,以后每个数据成员存储的起始位置要从当前成员大小或者当前成员的子成员大小(只要该成员。2、 性能原因:经过内存对齐后,CPU的内存访问速度大大提升。原创 2023-01-08 20:18:35 · 189 阅读 · 0 评论 -
C语言和C++到底有什么差别?资深程序员神比喻带你了解!
四、定义一个模板类,包含三种模板方法,1、初始化各种准备条件,2、对动作的双方调用某种动作方法,3、清理现场。接着定义累人作为容器的继承者,继承所有的功能,定义猫类作为物品的所有功能,接下来就可以像把物品放进容器一样,将大象放进容器类,然后关闭容器。二、首先定义一个人类,包含3个方法,1、打开方法,参数就是冰箱,2、放进的方法,参数是大象,3、关闭的方法,参数是书柜。然后定义大象类,接下来构建小明和大象的对象,然后调用打开方法,放进方法,关闭方法来实现这个功能。C++语言的版本就比较多了。原创 2023-01-08 20:17:39 · 182 阅读 · 0 评论 -
指针和数组的重难点解析
也就很简单了,cpp[-1][-1]+1 = (c+2)[-1]+1=c[1]+1=o。相当于就是a[2][1]=4。&a也是指向首地址,但是对于&a而言,无论几维数组,&a+1之后,一定是整个数组的一个跨度.这样就很简单了 **++cpp=**(cp+1)=*(c+2)=c[2]=Beautiful。aa[1][2],期中aa[1]相当于b,最终就是b[2]-b[0]=个元素。**a+1可以看成a[2][2][3]后面跨度[1]也就是1个元素。*a+1可以看成a[2][2]后面跨度[3]也就是3个元素。原创 2023-01-08 20:18:01 · 349 阅读 · 0 评论 -
关于静态绑定和动态绑定
p->test();在C++里面,对于非虚成员函数,C++这么语言它是静态绑定的,这是不同于Java和Python,它们是在程序运行的时候找到p的成员函数,也就是所谓的动态绑定(也叫晚绑定/迟绑定)但是对于C++而言,为了保证程序的运行,C++设计者认为,认为凡是编译器编译的时候能解决的事情,就不能拖到运行时查到了.也就是说对成员函数的解析以及查找都是在编译的时候就已经完成了,这就是所谓的静态绑定(也叫早绑定)所以说对C++编译器,首先查到p的类型,发现它有一个非虚的成员函数叫test,原创 2023-01-08 20:14:38 · 77 阅读 · 0 评论 -
关于整数在计算机里面的存储
c++原创 2023-01-08 20:13:17 · 111 阅读 · 0 评论 -
11 QComBox和QPlainTextEdit
QPlainTextEdit的文字内容以QTextDocument类型储存,函数documenti返回这个文档对象的指针。- QTextBlock finBlockByNumber(int)读取一个文本块,序号从0开始。QTextDocument是内存中的文本对象,以文本块的方式储存,每个段落以换行符结束。QTextDocument提供一些函数实现对文本内容的存取。- int blockCount(),返回文本块个数。原创 2023-01-08 20:11:24 · 200 阅读 · 0 评论 -
10 时间日期与定时器
QTimer:定时器,如果周期为100,那么每100毫秒会发射一次timeout信号。QDateTime:日期时间数据类型,如2017-03-23 08:12:43。QCalendarWidget:一个用日历形式选择日期的组件。QDateTimeEdit:编辑和显示日期时间的组件。QTime:时间数据类型,如15:23:13。QDate:日期数据类型,如2017-4-5。QDateEdit:编辑和显示日期的组件。原创 2023-01-08 20:10:07 · 101 阅读 · 0 评论 -
9 Qslider QScrollBar QprogressBar QDial QLCDNumber
QLCDNumber:模仿LCD数字的显示组件,可以显示整数或浮点数,显示整数可以使用不同进制数值。QProgressBar:进度条,一般用于显示任务进度,可用于数值的百分比显示。QScrollBar:卷滚条,与QSlider:功能类似,还可以用于卷滚区域。QSlider:滑动条,通过滑动设置数值,可用于数值输入。QDia:表盘式数值输入组件,通过转动表针获取输入值。原创 2023-01-08 20:10:18 · 103 阅读 · 0 评论 -
Qt程序运行时窗口大小与设计模式的不一致
Qt原创 2023-01-08 20:08:45 · 1649 阅读 · 1 评论 -
8 SpinBox的使用
Qt原创 2023-01-07 20:21:05 · 110 阅读 · 0 评论 -
7 Qt QString的常用功能
Qt原创 2023-01-07 20:20:24 · 69 阅读 · 0 评论 -
6 Qt类库的模块
Qt原创 2023-01-07 19:58:48 · 125 阅读 · 0 评论 -
5 Qt容器类
Qt原创 2023-01-07 19:54:55 · 73 阅读 · 0 评论 -
4 Qt全局定义
确保在各个平台上个数据类型都有统一确定的长度。Qt类的头文件都会包含该文件。原创 2023-01-07 19:53:48 · 83 阅读 · 0 评论 -
3 Qt核心特点:属性系统、信号与槽
Q_PROPERTY宏定义一个返回类型为type,名称为name的属性。原创 2023-01-07 19:25:32 · 93 阅读 · 0 评论 -
2 Qt核心特点:元对象系统
使用信号与槽机制,只有添加Q_OBJECT宏,MOC才能对类里的信号与槽进行预处理。Qt为C++语言增加的特性在Qt Core模块里实现,由Qt的元对象系统实现。元对象系统(Meta-Object System)包括:信号与槽机制、属性系统、动态类型转换等。原创 2023-01-07 19:22:50 · 198 阅读 · 0 评论 -
Qt开发者官方文档收录
4.Qt Creator手册。5.Qt软件下载地址。原创 2023-01-07 19:21:33 · 151 阅读 · 0 评论 -
1 QtCreator开发
3、混合方式UI设计。原创 2023-01-07 19:21:02 · 100 阅读 · 0 评论 -
QtCreator设置代码自动格式化
在使用QtCreator开发过程中,保持组内一致的代码风格,非常重要。代码自动格式化,把代码风格生成配置文件大家一起使用,不仅使代码整洁易读,更加清晰易懂,还能保持组内代码风格一致。1、菜单栏打开 工具->选项,选择Beautiful,General页签,我们选择Artistic Style。菜单栏打开 帮助->关于插件,找到C++下面的Beautiful,勾选上,然后重启Qt。2、点击Artistic Style页签,选择我们下载的AStyle.exe程序,然后点击Edit,添加我们的样式,然后保存。原创 2023-01-07 19:20:10 · 756 阅读 · 0 评论 -
win11安装Qt5.9.1和简单使用
Qt原创 2023-01-05 22:04:34 · 974 阅读 · 0 评论 -
1 CPP Primer Plus 基础
链接指的是将目标代码同使用的函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段版本。原创 2023-01-05 22:01:39 · 83 阅读 · 0 评论 -
CPP知识点复习归纳-是否需要析构函数和虚析构函数
先要了解什么是虚函数,如果一个类有派生类的话,那么在代码定义的时候用基类创建一个指针或引用,这个指针或引用,指向基类或者派生类,派生类可能会用到基类的一些方法,有可能会混淆,如果基类指针指向的是派生类,此时派生类对应的对象,在调用成员函数的时候,到底调用的是基类的成员函数还是派生类的成员函数。构造函数,调用顺序是先构造基类,再构造派生类,而调用析构函数恰好相反,先调用派生类析构函数,再调用基类析构函数,如果不作为基类,可以不定义虚析构函数,但是这个类有可能被别人拿去作为基类,就有可能会出现问题。原创 2023-01-05 22:00:14 · 810 阅读 · 0 评论