![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 53
_DCG_
这个作者很懒,什么都没留下…
展开
-
c++之new(std::nothrow)的作用
new type():这是最普通的用法,这也是大家都能看懂的用法.,此种用法用于创建type类型的对象,例如;new type[n]:创建一个数组对象,每个数组元素的类型都是type,例如;new type*[n]:创建一个指向数组对象的指针,这样返回的是一个二级指针,例如;new (std::nothrow) type:内存申请失败,不报错,并返回NULL。原创 2023-12-12 21:40:58 · 640 阅读 · 0 评论 -
Qt编译报错“munmap_chunk(): invalid pointer”
,很是疑惑,从字面意思上看指针操作有问题,但是经过排查,未发现指针有非法操作,而且现象是调用一个函数,执行完该函数最后一行后崩溃。后面经过确认原来是该函数没有返回值,因为该函数原型是。但是为什么会报这个错误我也搞不太清除。qt工程修改编译后报错信息是“原创 2023-12-09 11:23:46 · 489 阅读 · 0 评论 -
ffmpeg编译问题
产生这个报错简单的是就是依赖库未包含,就是说未指定依赖库的路径和和依赖库名称,这个通过LIBS关键字就可以解决如果确定LIBS等类似的方式已经指明依赖库的路径和依赖库名称,还是有这个报错,那么确认下是否是C++代码调用了C语言的库,如果属实,那么就是用extern "C"关键字包含C库的头文件。原创 2023-12-09 10:57:06 · 1205 阅读 · 0 评论 -
c++ 函数模板详细介绍
在使用函数模板时,如果不清楚相关的规则,将模板中的类型全部显式的声明出来,肯定不会产生错误。如果调用参数的类型都可以类型推导,可以不声明任何参数类型如果模板参数中存在不能通过类型推导判断模板类型的,那么必须要将该模板参数前面的模板参数包括该模板参数显式的声明出来。原创 2023-12-05 20:28:20 · 977 阅读 · 0 评论 -
linux之cpu模拟负载程序
由于我的环境cpu有8个核,若指定cpu占有率的为70%,则每个核的cpu占有率为70%,总的cpu占有率为70%,所有的cpu核占有率综合为560%左右(70%*8)。工作中我们经常会遇到这样的问题,需要模拟cpu的负载程序,例如模拟cpu占有率抬升10%、20%、50%、70%等,那这样的程序应该如何实现呢?它的原理是什么样的呢?可以看到cpu各个核的cpu占有率均在70%以上,综合的cpu占有率也是79%,各个核的cpu占有率总计为520.9基本与预期相符,达到预期目的。占用固定cpu占有率的程序。原创 2023-10-11 15:33:53 · 680 阅读 · 0 评论 -
c++之双叹号的含义
(cond)的含义,即取反的含义,若cond为非0,则值为0,;若cond为0,则值为0;这里有一个隐藏含义,即可以通过!通过上面例子可以看到原本k和m的数值分别是12和-1,但是经过!的用法,这个用法的含义是什么呢?看一些代码时,有时候看到。那么以此类推,不难得出。原创 2023-09-18 15:32:28 · 447 阅读 · 2 评论 -
使用wchar_t类型注意事项
比如对于汉字,韩文以及日文这样的字符,它们的每一个文字都占据两个字节,所以C++提出了wchar_t类型,也称为双字节类型,或宽字符类型。char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。如果在使用wchar_t过程中出现了一些问题,可以考虑添加编译选项-fshort-wchar,看看能否解决。wchar_t数据类型一般为16位或32位,所能表示的字符数远超char型。wchar_t,宽字符,是C/C++的字符类型,是一种扩展的存储方式。原创 2023-08-30 16:25:40 · 488 阅读 · 0 评论 -
vs studio中相对路径的含义
vs studio中关于相对路径的理解原创 2023-05-12 09:16:46 · 869 阅读 · 0 评论 -
交叉编译工具分析
但是某些平台下,一般是嵌入式环境,由于嵌入式环境的资源限制,如cpu的频率,内存资源一般都比较小,但是将源文件编译成可执行程序的编译过程需要大量的很运行和大量的存储空间,而这些需求在某些嵌入式平台上无法得到满足,所以需要在其他的平台上编译指定平台的应用程序的场景就有了,在这个背景下,交叉编译工具链应运而生。我个人的理解是对于有桌面版的操作系统一般都不需要交叉编译工具来来完成,对于没有桌面的操作系统(实时操作系统)一般都是需要进行交叉编译的。为什么需要交叉编译工具?原创 2023-05-04 10:44:59 · 55 阅读 · 0 评论 -
动态链接库的链接和运行
本文对动态链接库的链接和运行进行一个总结,为什么要分开说呢?因为链接通过生成可执行文件并不代表运行时能找到依赖的动态库。这与静态库是不一样的,因为静态库在编译完成后会库会编译到可执行程序中,但是动态链接库则不然,仅仅只是在可执行文件中打了一个标记,标识依赖哪个动态库文件。如何编译动态库或者如何编译静态库,这个很简单,在创建工程的时候进行就可以了,本文重点讲述动态库编译完成后如何链接到可执行程序中。下面将区分window平台和linux平台进行介绍。原创 2023-04-25 18:06:10 · 1311 阅读 · 0 评论 -
Opencv 如何获取roi区域
然后通过图像的基本绘制方法(circle/rectangle/ellipse/polylines/fillpoly/drawContours)绘制基本图形,并将绘制的图形进行填充(注意一定要填充为非0值,这与掩膜的原理有关系,只有mask掩膜的值非0的区域才会进行操作,以setto为例,第二个参数就是mask,mask中非0的位置才会将第一个参数的值付给对应位置的像素)。上述两种获取roi的方式是通过重载()运算符实现的,根据上面的描述可以看到通过上面两种方法仅可以实现矩形roi区域的获取。原创 2023-04-23 21:21:44 · 1337 阅读 · 0 评论 -
c++ operator==重载运算符编译错误问题
operator==重载运算符编译错误问题原创 2023-04-12 18:09:19 · 873 阅读 · 0 评论 -
c++ 单例模式--饱汉模式
单例模式下包含饱汉模式的实现方法原创 2023-04-11 15:00:33 · 84 阅读 · 0 评论 -
QPainter使用方法总结
Qpainter使用方法总结原创 2023-04-07 10:35:13 · 984 阅读 · 0 评论 -
c++ operator关键字的作用
operator关键字的介绍和基本使用方法原创 2023-04-06 20:22:11 · 120 阅读 · 0 评论 -
c++头文件互相包含的问题解析
c++中头文件互相包含的情况下代码处理方法原创 2023-04-06 17:39:56 · 1216 阅读 · 0 评论 -
c++ namespace(名字空间)介绍
名字空间的基本介绍机器基本用法,重点是匿名名字空间的使用。原创 2023-03-21 20:52:17 · 77 阅读 · 0 评论 -
c++ auto关键字介绍
c++11 auto关键字的基本介绍原创 2023-03-21 18:00:18 · 113 阅读 · 0 评论 -
c++类模板 模板类 函数模板 模板函数
简要的介绍了类模板、模板类、函数模板和模板函数的基本概念及关系。原创 2023-03-15 20:38:18 · 81 阅读 · 0 评论 -
包装器std::function&std::bind
详细介绍了c++ 下function包装器和bind包装器的基本概念,基本使用方法,并举例说明。原创 2023-03-15 19:13:29 · 99 阅读 · 0 评论 -
c++智能指针详解
详细介绍智能指针的基本原理,分析了使用场景,并且列出了容易踩坑的使用方法及规避方法。原创 2023-03-14 15:13:08 · 748 阅读 · 0 评论 -
多继承理解
多继承的详细总结,梳理了多继承的多种类型,并对各种类型的多继承进行了内存布局的详细介绍。原创 2023-03-09 16:23:23 · 668 阅读 · 0 评论 -
dynamic_cast与static_cast理解
因为基类的子类可以有多个,一个指向子类1的对象的基类指针如果转换为子类2 的指针,就会发生错误。向下转换就是一个指向子类对象的基类指针转换为对对应的子类对象。铺开来说,如果子类对象1的指针付给基类指针,然后将该指针强转为对象2,从内存的角度看这是不合理的。不安全的根本原因是基类可以有多个子类,强制转换可能会造成不同子类间的转化,这是非常危险的。static_cast不仅支持类类型的类型转换,同样支持普通类型类型转换,该运算符的功能与C风格的强制转化,不同的是该运算符相对于C风格的强制类型转换更安全。原创 2023-03-07 16:13:58 · 200 阅读 · 0 评论 -
c++ 拷贝构造函数在函数形参为类时的调用问题
引用区分为引用和常引用。对于引用来说,本身不分配内存,他仅仅是别的变量的一个别名,和引用实体共用同一片内存空间,这是与指针不同的地方之一。函数参数形参,区别于按值传递,使用引用作为函数入参,可以提升传递效率,尤其对于大数据结构的入参,该部分工作由编译器完成,验证引用作为函数参数效率比按值传递效率的方法参见如下代码段。老规矩先说问题,在开发的过程中遇到一个问题,在一个类中由于该类成员包含一个指针数据成员,并且该类也是作为一个函数形参,存在浅拷贝的问题,造成了该指针的多次释放,使程序崩溃。原创 2023-03-02 09:58:22 · 97 阅读 · 0 评论 -
protected理解
protected关键字虽然子类可以调用,但是仅限于子类的成员函数可以调用基类protected修饰的成员函数或者成员变量,但是子类对象不能直接调用基类protected修饰的成员函数和成员变量。首先先把问题讲清楚。由此可见,自己在这里对protected关键字理解是错误的,protected在记忆中的只是理解为子类可调用,但是平时使用的比较少,至于如何调用则没有深究过,才会造成这样的错误。private继承的则基类中的public和protected修饰的成员变量或者成员函数都将变为private类型。原创 2023-02-27 15:07:02 · 449 阅读 · 0 评论 -
c++中=delete的用法
delete是c++11新增的关键字,可以用来修饰成员函数。其含义是标识该成员函数不可用,在编译阶段如果代码中存在调用=delete关键字修饰的成员函数则会报错。在c++11之前要实现=delete关键字类似的功能需要使用private关键字来实现。原创 2023-02-21 17:10:48 · 621 阅读 · 0 评论 -
c++ for循环中的定义的局部变量地址总是不变
在开发过程中发现一个问题,当在一个for循环中定义一个局部变量,打印该局部变量的地址,地址总是相同的,地址相同的原因是这是一个局部变量,for循环每次循环执行完毕总是会释放该局部变量,从堆栈的角度看总是会先释放堆栈然后压栈,所以才会造成每次的局部变量的值总是一样。原创 2022-12-29 10:14:32 · 747 阅读 · 0 评论 -
c++类成员函数包含后缀const的含义
类成员函数添加const后缀表示该函数不会修改该类的数据成员。如果在这个函数中修改了数据成员,则编译器会报错。原创 2022-12-23 15:32:11 · 136 阅读 · 0 评论 -
Printf在linux下无法打印情况解决方法
关于qtcreator调试控制台程序使用printf打印不显示问题,主要原因是缓存原因,有全缓冲,行缓冲,无缓冲,如无特殊操作(fflush(stdout))全缓冲只有达到当前缓冲区大小才会输出,行缓冲则会在接受到\n换行符时输出,无缓冲则是有什么输出什么,网上看到关于该问题的解决方法都是调用fflush进行刷新,这种对于有较多地方那个需要打印比较麻烦,所以根据原理在main函数入口设置标准输出为行缓冲或者无缓冲这样就是实时打印信息了(标准错误一样)原创 2022-12-08 14:55:02 · 2055 阅读 · 0 评论 -
C++ static修饰类中的类成员变量
对于static修饰的成员变量在类中称为静态成员变量,对于该修饰符的作用这里不做介绍,网络上对该关键字的讲解很多。本文重点讲述static修饰的变量不是基本数据类型,而是一个类类型,这种情况下该如何初始化呢?很简单,像基本数据类一样,直接触发调用类的构造函数。原创 2022-12-02 11:40:03 · 451 阅读 · 0 评论 -
c++ noexcept理解
转载:https://blog.csdn.net/laojiu_/article/details/50781352相比于断言适用于排除逻辑上不可能存在的状态,异常通常是用于逻辑上可能发生的错误。在C++98中,我们看到了一套完整的不同于C的异常处理系统。通过这套异常处理系统,C++拥有了远比C强大的异常处理功能。在异常处理的代码中,程序员有可能看到过如下的异常声明表达形式:void excpt_func() throw(int, double) { ... }在excpt_func函数声明之后,..转载 2020-12-14 20:49:17 · 974 阅读 · 0 评论 -
c++类的继承与多态——内存分析
转载地址:http://www.cnblogs.com/kunhu/p/3631285.html在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关联的能力”。和纯粹的面向对象程序设计语言不同,C++中的多态有着更广泛的含义。除了常见的通过类继承和虚函数机制生效于运行期的动态多态(dynamic polymorphism)外,带变量的宏,模板,函数重载,运算符重载,转载 2017-12-02 07:46:24 · 342 阅读 · 0 评论