
c++学习
文章平均质量分 75
记录日常开发小技巧以及知识点
梦想患者
奋斗加油
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Map、Set的底层实现——红黑树
复习二叉树相关知识点,结合之前实现的一个Map源码,在此做一个总结。分析红黑树,扩展到map、set知识点上原创 2025-04-03 14:10:37 · 1041 阅读 · 1 评论 -
浅谈c++函数调用以及析构函数为虚函数的原因
巩固c++知识点,从编译器的角度看看程序的函数调用。简单的总结了一下函数调用,文章关于虚函数的内容,并没有进行详细的解释。如有好奇的读者,可参考:链接:浅谈c++虚函数。原创 2024-11-12 01:59:17 · 1090 阅读 · 0 评论 -
浅谈c++虚基类内存布局
引入虚基类的原因是为了解决三层继承,爷爷类重复存在的问题。大概操作如下:普通继承:当通过子类对象给爷爷类成员变量赋值时会出现二义性。虚继承:子类中只有一个爷爷类避免了二义性。只有对虚基类的成员变量进行处理如赋值的时候,才会用到虚基类表–取其中的值用作偏移值,来进行虚基类成员变量首地址的定位运算。原创 2024-11-08 12:44:44 · 1084 阅读 · 0 评论 -
浅谈c++虚函数
记录自己复习的总结,方便后期巩固知识点。对于虚函数八股文的内容不进行阐述。主要从工作原理上进行分析。各种语法,只是对内存的操作方式。期望自己面对八股文的时候可以不用记特性。通过知道它的运行原理,推导出它的表象。看到一句源码,能明白它背后有很多不被人知的操作。原创 2024-11-06 15:54:20 · 1092 阅读 · 0 评论 -
浅谈智能指针工作原理(std::shared_ptr、std::unique_ptr、std::weak_ptr、std::auto_ptr)
智能指针,老有人会问关于对它的认识。为了很好的回答这个问题。对智能指针 std::shared_ptr、std::unique_ptr、std::weak_ptr和 std::auto_ptr进行分析。在此做一个总结,对于智能指针的分析告一段落。`智能指针总是八股文的一部分,与其记住它的特性,不如知道它的工作逻辑,推导出所以然。记性总是很差,为何不去理解它的原理,感受它的趣味。原创 2024-10-25 17:00:19 · 990 阅读 · 0 评论 -
c++使用_beginthreadex创建线程
用_beginthreadex(),来创建线程类。方便使用原创 2024-06-07 14:45:31 · 916 阅读 · 0 评论 -
简单模拟vector的特性,同时浅谈erase操作后,迭代器失效的原因
在构造函数中,start和finish指针,指向开辟空间的首地址,end_of_storage指向最后的地址。push_back()函数,在传入值时,所占空间已满,开辟之前二倍的空间,并将之前的值拷贝到刚开辟的空间中,同时,释放原来的空间,finish指针向后移动。成员函数,此函数,在STLvector中,通过vs2015测试时,通过迭代器删除一个元素时,不管它“*”取值,还是++操作,都会崩溃。(至此,我在模拟时,也进行了位置的偏移),从这里可以看到,并不是因为野指针的缘故。............原创 2022-07-21 17:25:22 · 411 阅读 · 0 评论 -
C语言,声明和实现放在头文件中
C语言,声明和实现放在头文件中原创 2023-03-08 10:54:11 · 553 阅读 · 0 评论 -
工厂方法实现
手动实现工厂方法,支持对象的注册和删除。(注意在头文件声明的map,在.cpp中需要定义)//animal.h#pragma onceclass animal{public: virtual void run() = 0;private:};class Dog:public animal{public: virtual void run();private:};class Cat :public animal{public: virtual void ru原创 2022-04-25 16:50:18 · 237 阅读 · 0 评论 -
_stdcall 添加与否的作用
作用:函数采用从右到左的压栈方式,自己在退出时清空堆栈。添加时,减少了指令的使用。将问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); } 原因原创 2021-10-23 22:28:16 · 370 阅读 · 0 评论 -
局部变量地址变化
在栈中,局部变量地址由高地址到低地址存放。int类型之间地址值相差12字节。int类型 与char类型 之间,位置的不同,地址相差的址也不同。通过查看栈上连续定义的int变量,地址相差12个字节_weixin_34220623的博客-CSDN博客作者告诉我们 ,在地址前后有四字节的地址解释说明。通过以上结果可知,i,m(int类型之间)的地址相差12个字节。m,n(int 和char)之间相差9个字节。n,p(char和int)之间相差15个字节。同时,通过观察,数组最高位置,在p之下。因为P...原创 2021-11-05 11:02:49 · 800 阅读 · 0 评论 -
C方式模拟c++特性
用C语言模拟c++封装、继承、多态三大特性。原创 2022-04-19 10:04:12 · 274 阅读 · 0 评论