自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 各类认知提升

但识人不是唯一目的,用人的过程也是识人的过程,把合适的人放在合适的岗位上,帮助下属成长,改善组织绩效才是目的。内部因素包括企业中长期战略规划,企业短期商业目标,制造流程优化,组织及管理变革,数字化运营和分析。首先要避免确认偏差,不要带着抵制的情绪去接收外部建议,要多倾听多交流,打开自我。外部因素包括社会因素、技术因素、经济因素、生态环境因素以及政策法规因素。如何识人,用人是核心。第三要避免认知失调,“吃不到葡萄,就说葡萄酸”的心理是错误的。第二要避免达克效应,勿妄自尊大,低估自己不懂的事。

2023-11-22 11:53:54 214

原创 【内存管理】对象树(内存管理)

我们常常听到 QObject 会用对象树来组织管理自己,那什么是对象树?这个概念非常好理解。因为。比如创建一个 QObject 并指定父对象时,就会把自己加入到父对象的 children() 列表中,也就是 QList<QObject *> 变量中。在QT中使用对象树来管理 QObject 及其子类的对象。当父对象析构的时候,QList<QObject *>这个列表中的所有对象也会被自动逐级析构。

2025-05-01 11:04:40 344

原创 【信号槽】Connect函数的几种写法及连接方式

Qt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。两种方法区别不大,用起来都比较方便,但继承QObject的方法更加灵活。

2025-05-01 11:01:15 1186

原创 【C++11特性】Lambda表达式(匿名函数)

C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。在QT之前的总结中,我们可以知道其是通过外部的 [ ] 来明确函数体内部可以访问的外部变量,这个过程称为Lambda表达式 “捕获” 了外部变量。类似参数传递方式(值传递、引入传递、指针传递),在Lambda表达式中,外部变量的捕获方式也有值捕获、引用捕获、隐式捕获。

2025-04-28 22:18:49 1107

原创 【C++11特性】右值引用

引用本质是别名,可以通过引用修改变量的值,传参时传引用可以避免拷贝,其实现原理和指针类似。

2025-04-28 22:10:33 682

原创 【三大特性】对象模型

引用《深度探索C++对象模型》这本书中的话:直接支持面向对象程序设计,包括了构造函数、析构函数、多态、虚函数等等,这些内容在很多书籍上都有讨论,也是C++最被人熟知的地方(特性)。而对象模型的底层实现机制却是很少有书籍讨论的。。在我看来,对象模型研究的是对象在存储上的空间与时间上的更优,并对C++面向对象技术加以支持,如以虚指针、虚表机制支持多态特性。

2025-04-27 21:19:34 993

原创 【三大特性】虚表 内存分布

之前研究到,。

2025-04-27 21:13:14 694

原创 【三大特性】函数重载、覆盖、隐藏规则(编译时多态)

1.子类重新定义父类中有相同名称的非虚函数( 参数列表可以不同 )如果存在两个或多个具有包含关系的作用域,外层声明了一个标识符,而内层没有再次声明同名标识符,那么外层标识符在内层依然可见,如果在内层声明了同名标识符,则外层标识符在内层不可见,这时称内层标识符隐藏了外层同名标识符,这种现象称为隐藏规则。相同的范围(在同一个类中)函数名字相同,参数不同virtual关键字可有可无不同的范围,分别位于基类和派生类中函数的名字相同,参数相同基类函数必须有virtual关键字。

2025-04-26 19:45:18 954

原创 【三大特性】多态及虚机制

编译器在编译的时候,发现Father类中有虚函数,此时编译器会为每个包含虚函数的类创建一个虚表(即 vtable),该虚表是一个一维数组,在这个数组中存放每个虚函数的地址。

2025-04-26 19:42:34 983

原创 【基础】nothrow 和 new 区别

在C++编码中使用new分配堆内存时,进行Test-for-NULL检查是一个好习惯。

2025-04-25 20:26:38 113

原创 【基础】类或结构体 大小判定

【原因】:成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而,而这个指针指向的是一个table,table里面记录的各个成员函数的地址( 具体可以看多态函数的实现 )。所以我们访问成员函数是间接获得地址的。所以这样也就增加了一定的时间开销,。

2025-04-25 20:23:45 854

原创 【基础】强制类型转换

上面对于const_cast的讨论,其实不太能明白const_cast的具体用处。其实呢,我们使用const_cast的目的并不是为了修改项目已经定义了const的变量值,而是。

2025-04-25 20:18:46 664

原创 【基础】智能指针分析

智能指针在C++11版本之后提供,包含在头文件<memory>中,auto_ptr(C++11已弃用)shared_ptrunique_ptrweak_ptr每种指针都有不同的使用范围,unique_ptr指针优于其它两种类型,除非对象需要共享时用shared_ptr。如果你没有打算在多个线程之间来共享资源的话,那么就请使用unique_ptr。使用make_shared而不是裸指针来初始化共享指针。

2025-04-24 21:46:21 899

原创 【基础】内联函数

内联函数是代码被插入到调用者代码处的函数。如同 #define 宏,内联函数通过避免被调用的开销来提高执行效率,尤其是它能够通过调用(“过程化集成”)被编译器优化。宏定义不检查函数参数,返回值什么的,只是展开,相对来说,内联函数会检查参数类型,所以更安全。内联函数和宏很类似,而区别在于,宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的。而且内联函数是真正的函数,只是在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的开销。

2025-04-24 21:36:57 232

原创 【基础】指针和引用

【代码】【基础】指针和引用。

2025-04-24 21:34:29 287

原创 【基础】new delete 和 malloc free分析

首先需要调用上面提到的 operator new 标准库函数,传入的参数为 class A 的大小,这样函数返回的是分配内存的起始地址,这里假设是 0x007da290。答:C++ 的做法是在分配数组空间时多分配了 4 个字节的大小,专门保存数组的大小,在 delete [] 时就可以取出这个保存的数,就知道了需要调用析构函数多少次了。最后一步就是返回新分配并构造好的对象的指针,这里 t 就指向 0x007da290 这块内存,t 的类型为类 Test_newdelete 对象的指针。

2025-04-23 20:59:35 580

原创 【基础】关键字及运算符

仅仅是用来声明外部全局变量(注:extern不能用来定义变量)1)常量指针:强调的是指针对其所指对象的不可改变性。见:【三大特性】函数重载、覆盖、隐藏规则(编译时多态)2)指针常量:强调的是指针的不可改变性。

2025-04-23 20:43:20 258

原创 【C++ GTest】GTest集成测试框架搭建及总结

Google Test (gtest) 是一个由 Google 开发的流行的 C++ 单元测试框架。它为开发者提供了一套强大的工具和功能,用于编写、组织和运行测试用例。gtest 框架支持测试驱动开发(Test-Driven Development,TDD)和行为驱动开发(Behavior-Driven Development,BDD)方法。丰富的断言gtest 框架提供了一组丰富的断言宏,用于验证测试结果。这些断言宏包括比较值、检查条件、抛出异常等功能,可以满足各种测试需求;灵活的测试组织。

2024-05-22 19:34:52 2508 3

原创 【C++ 模板】模板使用总结以及结构设计

模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。函数模版/类模版。

2024-04-03 11:36:01 487 1

原创 【QT QSS系列】QSS语法深入及开发设计

如上图,可以通过右键按钮->改变样式表或者右边属性框中的styleSheet访问到控件的样式表,进行QSS编写。使用该方式的好处在于,可以直观看到设计效果,通过Ctrl+R就可以预览窗体设计。并且在编辑样式表窗口中添加资源、添加渐变、添加颜色、添加字体,方便直接编辑特定样式的颜色。!!!重点】:此类方式编辑的样式表默认作用于当前控件及其所有子控件,符合QT 父子控件继承的设计思想,当然QT也提供了相应QSS语法,能够屏蔽掉继承的影响,详见2.2.3选择器。

2024-02-10 11:35:00 2225 1

原创 【Linux top】CPU占用率过高问题排查

前面几篇文章介绍了现阶段掌握的windows下排查cpu过高的手段,因本身职能为跨平台开发,这边总结下Linux下的几种方法:1.通过top命令进行排查 2.通过perf工具进行排查。本文主要对top命令进行总结。

2023-10-11 14:49:34 2282 1

原创 【windbg】CPU占用率过高问题排查

runaway num:让调试器显示每个线程消耗的用户模式时间(user time)默认不加num就是0x1,还有更多的num组合,这边就不做扩展了,默认就够用了。该扩展命令可以用来快速找出哪些线程循环失去控制消耗了太多CPU时间。输出中以调试器的内部线程号和16进制线程ID来标识每个线程。还会显示调试器ID。如上图,我们通过~跳到想要分析的线程,然后kbn可以查看具体线程的堆栈信息。当然,想要更加详细的堆栈信息,需要添加pdb,这边就不过多赘述了,网上很多教程。

2023-10-11 13:47:29 1024

原创 【procexp】CPU占用率过高问题排查

在windows环境下,cpu占用率过高的场景下,目前掌握的技能中,可以使用windbg和procexp两个工具进行排查。本案例主要对procexp工具进行一个排查总结。【debug问题点】:CPU占用率过高问题【环境】:Windows【使用工具】:Procexp。

2023-10-11 10:39:07 1089

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除