随笔分类 -  C/C++

摘要:背景: 在公司使用qtcreator直接使用debug运行程序,程序10多分钟才加载成功。导致效率极低而无法正常使用断点调试。 替代方案: debug模式下运行程序,然后点击应用程序输出右上角的"挂接调试器到PID按钮"绿色三角按钮。可以进入C++断点调试界面,但是无法对QML进行断点调试。 解决方 阅读全文
posted @ 2023-07-19 11:29 xianyongchao 阅读(1370) 评论(0) 推荐(0)
摘要:一、编译安装boost 1.安装流程 下载路径:https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/,选择boost_1_80_0.zip下载。 编译流程:解压到指定目录-》切换到解压目录-》在bootstrap.bat末 阅读全文
posted @ 2022-11-09 22:04 xianyongchao 阅读(2070) 评论(0) 推荐(0)
摘要:一、使用场景 当我们在程序中使用某dll动态库的时候,若在使用dll的过程中发生中断或其它非预期的结果,我们此时就需要对动态库进行调试。 二、使用方法 如下图所示,我们需要在vs中对动态库项目的调试路径进行设置。动态库项目右键-》属性-》调试 1.调用动态库的程序的exe的路径。 2.启动exe所需 阅读全文
posted @ 2022-07-31 11:37 xianyongchao 阅读(2969) 评论(0) 推荐(0)
摘要:一、场景复现: 头文件A和B都有相同的宏定义(头文件),在文件C中包含了文件A和B(A前B后),则文件C中只是文件A被包含生效,文件B失效。 二、#ifndef、#define、#endif作用说明: 主要目的是防止头文件的重复包含和编译。 三、解决方法: 多个头文件的宏定义命名重复,最终导致引用第 阅读全文
posted @ 2022-02-24 15:10 xianyongchao 阅读(721) 评论(0) 推荐(0)
摘要:场景: 1.程序将解析好的协议对象(通过new创建的)放入队列中使用,队列使用之后释放协议对象,第一次释放成功了,第二次释放导致程序中断。 产生原因: 1.因为协议对象在拷贝构造的时候,有成员变量为std::list<class *>类型。拷贝构造函数中直接使用等号赋值,而其默认为浅拷贝。 此成员变 阅读全文
posted @ 2021-12-17 08:18 xianyongchao 阅读(122) 评论(0) 推荐(0)
摘要:代码: Request_Info requestInfo; requestInfo.askTYpe = askType; requestInfo.askName = _getAskName(askType, jsonStr); if(m_askIdMap.count(requestInfo) < 1 阅读全文
posted @ 2021-10-14 14:08 xianyongchao 阅读(2264) 评论(0) 推荐(0)
摘要:一、什么情况必须使用初始化列表的方式声明构造函数? 1.包含常量类型的成员 2.包含引用类型的成员 3.包含没有默认构造函数的类类型成员 4.优点:对于包含有类类型成员的类来说,省去了调用一次默认构造函数的过程。(初始化列表:拷贝构造 普通构造函数:默认构造+赋值构造) 二、函数后加const(只有 阅读全文
posted @ 2019-12-05 20:31 xianyongchao 阅读(139) 评论(0) 推荐(0)
摘要:这个问题找了很多没有找到满意的答案。仔细看了一下,是使用了c_str的问题。 我直接把使用string.c_str的地方使用char*代替即解决问题。 阅读全文
posted @ 2019-01-13 20:50 xianyongchao 阅读(4816) 评论(0) 推荐(0)
摘要:一、环境搭建: 参考文章:https://blog.csdn.net/fakine/article/details/79272090 二、创建实例: 阅读全文
posted @ 2019-01-09 22:59 xianyongchao 阅读(4353) 评论(0) 推荐(0)
摘要:解决方案: 属性》预编译头》不使用预编译头》应用 阅读全文
posted @ 2019-01-08 22:10 xianyongchao 阅读(287) 评论(0) 推荐(0)
摘要:没有下划线的位不符合ISO c++ 标准的写法,标准要求带下划线的标准,没有下划线的是为了兼容以前的版本。 阅读全文
posted @ 2019-01-08 21:25 xianyongchao 阅读(2600) 评论(0) 推荐(0)
摘要:解决办法: 属性》C/C++》预处理定义》编辑》添加_CRT_NONSTDC_NO_DEPRECATE》应用 阅读全文
posted @ 2019-01-08 21:20 xianyongchao 阅读(851) 评论(0) 推荐(0)
摘要:解决办法: 属性》C/C++》预处理器定义》分别输入: _CRT_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE 》保存退出即可 阅读全文
posted @ 2019-01-08 21:15 xianyongchao 阅读(844) 评论(0) 推荐(0)
摘要:一、引用的定义和特点是什么? 1.引用就是某一变量的一个别名,对引用的操作与对变量直接操作等效; 2.声明引用的时候必须初始化; 3.使用常量对const引用初始化后将生成一个只读变量。const type(int、char等) X; 4.引用的内部实现为常指针(即Type a& ; <==> Ty 阅读全文
posted @ 2018-11-05 20:55 xianyongchao 阅读(150) 评论(0) 推荐(0)
摘要:代码如下: 反思:一个简单的算法如果需要考虑周密,并且精炼,那它也不会简单,继续加油 阅读全文
posted @ 2018-09-06 17:19 xianyongchao 阅读(443) 评论(0) 推荐(0)
摘要:1、优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 阅读全文
posted @ 2018-09-04 09:41 xianyongchao 阅读(118) 评论(0) 推荐(0)
摘要:1、修饰成员变量 int value=0; int *p=&value; const int* p_c=&value; //指针常量,变量指针指向常量,但是指针本身地址可以修改(int const* p_c=&value,也是指针指向常量)。可以修改p_c的值,无法修改*p_c的值。 int* co 阅读全文
posted @ 2018-09-03 21:03 xianyongchao 阅读(148) 评论(0) 推荐(0)
摘要:1、结构体对齐 按照结构体中最大字节元素的字节个数对齐,比方说有最大基本元素数据类型为int,按照4字节对齐。最大为short,按照2字节对齐。 typedef struct //最大的元素的基本数据类型为(int)4个字节{ char numChar; //占据一个字节 int numInt; / 阅读全文
posted @ 2018-08-27 19:23 xianyongchao 阅读(334) 评论(0) 推荐(0)