自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++对象模型之拷贝构造函数

Default Memberwise Initialization如果类没有提供一个显式的copy constructor,当类对象以相同的类的另一个对象作为初值时,其内部是以所谓的default memberwise initialization手法完成的,也就是把每一个内建的或派生的数据成员的值,从某个对象拷贝一份到另一个对象身上,不过它并不会拷贝其中的member class object,而是以递归的方式施行memberwise initialization。Bitwise Copy Seman

2020-07-31 21:18:14 174

原创 C++对象模型之默认构造器

带有Default Constructor的Member Class Object如果一个类没有任何constructor,但它内含一个member object,而后者有default constructor,那么这个类的implicit default constructor就是nontrivial,编译器会为此合成出一个default constructor。只是这个合成操作只有在constructor真正需要被调用时才会发生。示例如下:class Foo {public: Foo()};cla

2020-07-31 18:07:31 226

原创 gdb如何定位死锁的位置

实例代码如下:#include <iostream>#include <mutex>#include <thread>using namespace std;//互斥锁mutex mtx;//线程共享资源int i = 0;//线程入口函数void func(){ mtx.lock(); cout << "进入线程!" << endl; ++i;}int main(){ thread t1(func); t

2020-07-21 13:24:18 1251

原创 堆排序原理与C++实现

思路1.建堆(大根堆为例)(1)从倒数第一个非叶子节点开始,做下沉操作,直到根节点。(2)下沉操作,对父节点和其儿子节点做比较,若父节点最大,则结束,否则就下沉,然后对发生变化的儿子节点做同样的下沉操作,直到叶子节点。2.堆排序(1)将根节点与最后一个叶子节点互换位置;(2)对根节点做下沉操作。C++实现#include <iostream>#include <vector>#include <functional>using namespace

2020-07-03 18:11:41 180

基于gmock实现的cppmockfree的使用方法总结

C++单元测试中,我们常常需要使用到gmock,但是gmock只能mock虚函数,如果要mock非虚成员函数、静态成员函数、全局函数、重载函数、模板函数以及其他依赖库的函数时,gmock就很难实现。而cppmockfree可以支持这些函数的mock。cppmockfree是基于gmock实现的,相较于gmock更容易使用,并且支持更多场景下的函数mock。本文介绍了cppmockfree的相关使用语法,并针对不同测试场景给出了测试样例,以及如何引入cppmockfree。

2023-08-30

空空如也

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

TA关注的人

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