- 博客(23)
- 资源 (4)
- 收藏
- 关注
原创 git 版本管理
用于给某次提交打个标签,例如截止到某次提交后完成了某个重大版本的开发,则可以在该次提交打上一个版本的 tag。显示某个 tag 的详细信息(git show commit_id 显示某次提交的详细信息)为当前提交打上 v1.0 的标签。为这个节点打上 v1.0 的标签。可以推送全部未推送过的本地标签;git tag: 标签的操作。可以推送一个本地标签;可以删除一个本地标签;
2023-10-24 20:45:50 345
原创 动态库封装与动态加载
在插件架构模式中,需要动态的插拔软件插件,其本质是动态加载和释放库,因此不应有任何静态的操作,如依赖lib、.h文件等。因本文主要用于支撑插件架构的讲解,因此只介绍C++中动态库的封装与动态加载方法,静态加载不做介绍。
2023-01-06 17:11:44 686
原创 vs源文件编译顺序--根据源文件在项目中先后建立的顺序决定,不是排序位置决定
第三天终于解决问题了,第二天和第三天到现在之前有种想摔鼠标的冲动,有种绝望的感觉。好吧,描述下问题。问题:两个看起来完全相同的工程,完全相同的源文件、头文件,总之所有的东西看起来都是完全一模一样。精简后的项目test1.0如下:A.h B.h A.cpp B.cpp M.cpp。各文件内容如下:执行test1.0,得到的结果如下:编译顺序为 A.cpp B.
2022-02-28 20:48:44 2282
原创 Linux 串口使用说明(含虚拟机)
虚拟机使用串口配置(非虚拟机忽略该节内容)通过虚拟机启动的linux系统,正常情况下是无法使用串口进行通信的,需经过以下配置: 虚拟机使用串口配置(非虚拟机忽略该节内容) 设置(Ctrl+D ) 中选择“添加”选择添加“串行端口”选择 “使用本机物理串口”选择串口编号, 比如COM1(此为window下串口名称,linux下为ttyS*)。选择“启动时连接”并点击完成。设置完成后会在设置首页显示正在使用端口(com1)。Linux下串口...
2022-02-28 20:42:00 2700 1
原创 异常处理 分配内存失败 throw catch try
1)try{}//检查异常;2)throw //抛出异常,可以为空,可以自定义类型,也可能是系统指定3)catch(){}捕获异常,可以是确定类型,类型要包含定义,可以使用新变量,或前面已定义过的变量(此处仍要声明);也可以是catch(...)方式catch(...)代表捕获所有可能的异常,通常放在其他确定性catch_block后,用于捕获任何没有考虑到的异常。catch(...)
2020-06-10 09:49:56 785
转载 1.设计模式UML基础
本文转自http://www.uml.org.cn/oobject/201104212.asp虚线箭头指向依赖;实线箭头指向关联;虚线三角指向接口;实线三角指向父类;空心菱形能分离而独立存在,是聚合;实心菱形精密关联不可分,是组合;上面是UML的语法。在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realiz...
2019-07-16 21:14:19 189
原创 修改ubuntu系统时间
1、查看日期时间date2、修改日期date -s 01/26/20193、修改时间date -s 06:12:014、更新计算机硬件时钟hwclock -w
2019-06-05 17:25:58 18058
原创 自定义命名空间问题 /头文件源文件
头文件中一定不要有实现部分,除非不可避免,如变量赋值、函数定义等;实现部分尽量放在头文件对应的源文件中,即.cpp中,这样可以防止文件重复包含统一头文件时引起的变量重定义问题;在这里举个例子-> namespace的定义如果将namespace的定义和实现都放在.h文件中,那么当有两个文件同时需要用到该namespace中的名称时在vs2016中一定会引起报错;将namespace
2018-01-08 16:09:09 860 2
转载 matlab 特殊符号
下标用 _(下划线) 希腊字母等特殊字符用 \加拼音 如 ° \circα \alpha β \beta γ \gamma θ \theta Θ \Theta Г \Gamma δ \delta Δ \Delta ξ \xi Ξ \Xi η \elta ε \epsilong ζ \zeta μ \miu υ \nu τ \tau λ \lamda ∧ \Lamda π \pi ∏ \P
2017-12-26 16:03:55 7742 1
原创 杂记1--虚析构函数
什么情况下必须使用虚析构函数:当父类指针指向子类,且父类和子类存在在析构时需要销毁的变量时。若不使用虚析构函数,则析构函数无多态性,默认只会调用父类的析构函数,因此不会销毁子类的变量,造成内存泄漏。当使用虚析构函数时,由于多态,会调用子类的析构函数,而子类析构函数在执行完后会调用父类的析构函数,因此不会导致内存泄漏。建议只要有继承,就将父类的析构函数定义为虚函数。
2017-09-16 18:40:37 299
原创 类成员函数,仅按后置const区分的重载
类的成员函数可以仅按是否有后置const进行重载。但:只有将类实体声明为const类型后,才会调用带后置const的函数若不将实例声明为const类型,即使类成员含const数据也不会调用后置const成员函数
2017-08-16 09:23:15 559 1
原创 参数传递---形参改变实参指针变量的值
实参是指针,想通过函数调用改变该指针,则形参需要定义成指向指针的指针。就是通过找到该指针的地址,然后修改地址的内容(即指针)的方法来改变指针的指向,属于对地址的直接访问。假如有函数 void deleteNode(listNode** L,int value);则L代表指针的地址,*L代表地址中的内容(实参中的指针),**L代表指针中的内容。函数参数传递形参是通过拷贝副本的方式传递的,
2017-08-13 17:32:34 1387 1
原创 结构体模板
当结构体使用模板时①不能使用typedef来给结构体另起别名②不能在定义结构体后直接定义结构体变量原因①结构体模板和类模板一样需要在调用时显示声明数据类型,若使用typedef另起别名相当于对不确定的数据类型另起别名,这是不允许的,但是可以对指明了数据类型的结构体使用typedef进行定义;例如typedef struct myStruct student;原因②结构体模板定义变量
2017-08-06 10:52:38 1362
原创 关于运算符的成员函数左右操作数问题
Two elements operator任何二元运算符要求左、右操作数:ObjectL op ObjectR1> 当重载为成员函数时,左操作数由this指针传递,右操作数由参数ObjectR传递.So IO operators should be overloading as nonmember functions.重载为友员函数时,左右操作数都由参数传递.2>
2017-07-13 21:01:48 1134
原创 链表分配指针 复制构造函数 node node->next=new
本篇文章记录博主在学习链表时、编写复制构造函数中、为复制目标(新目标)分配内存时出现的问题。先看一下赋值构造函数完成的方式,图一为原链表,要根据原链表为新链表一一动态分配内存,并赋值,赋值结束条件为原链表节点指针==NULL。我出错的代码:chainNode* sourceNode = list.firstNode;chainNode* targetNode = new c
2017-07-11 11:30:21 1536 2
原创 删除文件固定列
要删除文件某一列,首先找到某一列的定位方式,根据该条件选择性输出,此处基本思想是----删除两相邻空格之间的数据的方式达到删除某一列的目的。下面是栗子:文件格式如下:假如要删除第三列,此处用空格数和行数来标记某一列,i为行数,b为空格,enter为换行数,对读入的空格数和换行数进行计数,某一行定位到第三列的判断条件为b==3*enter+2,当满足此条件时便不再输出文件,直到b值改变或
2017-05-06 11:03:18 446
Technical_Information_GPS_Multisat_Waveform_Library_02.00.pdf
2023-03-15
笔记软件,免费下载使用,喜欢的老铁请留下你的赞
2022-05-11
基于QT的串口调试工具,含工程源码,含linux串口使用说明
2021-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人