C++
ZHDragonD
取法乎上
展开
-
ubuntu第一个PCL程序
效果图代码原创 2021-04-13 16:47:39 · 277 阅读 · 0 评论 -
Qt插件应用
对于一个大型软件系统来说,实现plugin是一件很美妙的事情,一个成功的plugin系统可以使软件增色不少。Plugin最大的功能是在一定程度内提高了软件的灵活度和可扩展性。一种是高等级的plugin。其实说白了就是已经确定interface的Qt本身的plugin;另一种是低等级的plugin。就是该plugin的interface也需要程序员自己编写从编程的角度,重点还是OOP。所谓的plugin,其实就是一些按照特定interface写成的子类。该Interface必须是虚基类,且所有函数(除原创 2021-02-20 17:35:03 · 216 阅读 · 0 评论 -
动态库和静态库对比
静态库: 1.静态库中的.lib叫做静态库,本身就包含了实际执行代码、符号表等等; 2.在链接阶段将汇编生成的目标文件.o与引用库一起链接打包到可执行文件中,可简单看成(.o或者.obj文件的集合); 3.对函数库的链接是放在编译时期完成的; 4.程序在运行时与函数库没有瓜葛,移植方便; 5.浪费空间和资源;动态库:(Dll,不可执行文件) 1.动态库中的.lib文件叫做导入库,对于导入库而言,其实际的执行代码位于动态...原创 2021-02-19 14:52:41 · 224 阅读 · 2 评论 -
C++11 新特性
1. std::function<> :函数模板类(是一个类),生成的是类对象,它代表的是一种类型的函数对象,这些对象可以当做指针使用,让它们指向不同的函数, 然后就可以利用这些对象执行函数的功能了,它不是指针对象,是实实在在的对象,但是功能是指针;2.std::bind :是函数模板(是一个函数);3.std::unordered_map:无序关联容器unordered_map。unordered_map是C++11正式加入的对hash_map的官方实现(之前标准C++没有hash原创 2021-01-06 15:53:22 · 108 阅读 · 0 评论 -
QT 多线程使用moveToThread开启,暂停的问题
在使用moveToThread创建线程时,开启和暂停的工作都在具体的QObject类完成,一般通过信号槽调用来开启和暂停函数;如果使用一般方法连接信号槽,如下:这样会出现开启了线程,暂停不了的情况,原因可能是,资源被线程占用,暂停信号没有到达不了槽函数;我们可以使用Lambda:相当于接收到信号,越过了槽,直接调用暂停函数;工作类:具体的工作内容UI类:创建,控制,暂停线程...原创 2020-12-24 18:03:02 · 1794 阅读 · 2 评论 -
C++ Lambda与connect
Lambda简介:c11新特性中加入了lambda表达式,所以Qt5.0 也支持,需在.pro文件中加入 CONFIG+=c++11;Lambda函数也就是一个函数,它的语法定义如下:[capture](parameters) mutable ->return-type{statement}1.[capture]:捕捉列表。捕捉列表总是出现在Lambda函数的开始处。实际上,[]是Lambda引出符。编译器根据该引出符判断接下来的代码是否是Lambda函数。捕捉列表能够捕捉上...原创 2020-12-24 14:53:12 · 810 阅读 · 0 评论 -
深拷贝,浅拷贝,赋值操作符的技术要点总结
写这篇文章的目的是因为这两天,遇到一个复制操作指针的问题(在一个列表里,存放的是指针变量,想通过右击鼠标实现复制操作),生成的新变量和源变量都是指向同一个地址,改变其中一个都会影响另一个,这样操作明显是不符合要求的。 网上找了资料,问了网友,后来回顾一下自己的寻问过程,发现自己很傻逼,不堪回首啊,后面还是要把C++Parimer找出来看啊。左思右想,还是把这个过程写下来,是一种记录,更是一种反思。 问题起因: ...原创 2020-09-04 14:34:27 · 226 阅读 · 0 评论 -
技术好文
C++类指针类型的成员变量的浅复制与深复制:https://www.cnblogs.com/gaochaochao/p/8370762.html。转载 2020-09-03 10:42:48 · 463 阅读 · 0 评论 -
C++引用
1.引用和指针区别:https://www.runoob.com/cplusplus/cpp-references.html2.引用作为参数:https://www.runoob.com/cplusplus/passing-parameters-by-references.html3.引用作为返回值:https://www.runoob.com/cplusplus/returning-values-by-reference.html...转载 2020-07-16 14:08:47 · 175 阅读 · 0 评论 -
彻底搞懂C/C++函数指针1,2, 3
1:https://blog.51cto.com/hipercomer/7923002:https://blog.51cto.com/hipercomer/7923013: https://blog.51cto.com/hipercomer/792302原创 2020-04-22 17:14:28 · 260 阅读 · 0 评论 -
QT利用宏自动创建get/set代码
//利用宏定义//创建具体函数,省去大量代码//数据保存还是很麻烦,还是要一条一条保存//通过对象调用函数原创 2020-04-05 11:27:05 · 1012 阅读 · 0 评论 -
QT开发笔记-----杂
1. 对于规范的Qt程序,我们要在main()函数中将主窗口部件创建在栈上,例如“Widget w;”,而不要在堆上进行创建(使用new操作符)。对于其他窗口部件,可以使用new操作符在堆上进行创建,不过一定要指定其父部件,这样就不用使用delete操作符来销毁该对象了。 2.信号和槽机制是Qt的核心内容,而信号和槽机制必须依赖于元对象系统,所以它...原创 2019-11-12 16:35:30 · 190 阅读 · 0 评论 -
#define中#和##以及 #@的作用
在用#define 定义时 , 斜杠("\")是用来续行的,"#"用来把参数转换成字符串,是给参数加上双引号。"##"则用来连接前后两个参数,把它们变成一个参数,"#@"是给参数加上单引号。下面的例子会使您很容易理解。#define CAT(x,y) x##y /* CAT(1,"abc") => "1abc" */#define TOCHAR(a) #@a...原创 2019-11-05 15:13:47 · 899 阅读 · 0 评论