C++
伶优
coder
展开
-
OO设计五大原则
单一职责原则(SRP):一个类应该仅有一个引起它变化的原因开放封闭原则(OCP):类模块是可拓展的,但是不可修改(对拓展开放,对更改封闭)里氏替换原则(LSP):子类必须能够替换它们的基类依赖倒置原则(DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象抽象不应该依赖于实现细节,实现细节应该依赖于抽象接口隔离原则(ISP):采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。...原创 2021-02-20 13:48:53 · 96 阅读 · 0 评论 -
C++:堆内存为什么不连续
1、栈中的内存是操作系统自动分配的,可以理解成为时连续的,堆的内存分配是因为我们malloc空间的时候,申请的空间的大小不一样造成了碎片。使用malloc的时候系统内部有一个空闲内存映射表,系统会自动查找空闲内存中的第一个合适大小的空间分配2、每一次分配的内存是连续的,但如果用结构体链表来管理分配的内存就可以将每一次分配的内存虚拟的连接起来,但前提是每一次分配的内存还是连续的,只是每个节点所占的内存单元不是连续的3、分配和释放不一定什么时候发生。内核有自己申请内存的算法。当然不一定是连续的,如果想连续.原创 2021-01-15 16:35:02 · 2047 阅读 · 0 评论 -
C++:封装机制
封装机制:实现模块的接口与实现的分离(I) Namespace(II) Class-使用示例:原创 2020-12-24 17:24:55 · 240 阅读 · 1 评论 -
C++: 纯虚函数 && 虚函数
1、纯虚函数声明如下: virtual void funtion1()=0; 纯虚函数一定没有定义,纯虚函数用来规范派生类的行为,即接口。包含纯虚函数的类是抽象类,抽象类不能定义实例,但可以声明指向实现该抽象类的具体类的指针或引用。2、虚函数声明如下:virtual ReturnType FunctionName(Parameter);虚函数必须实现,如果不实现,编译器将报错,错误提示为: err原创 2017-06-15 18:43:01 · 224 阅读 · 0 评论 -
C++: 类型转换如何更改数据
问题:运动控制算法中存在uint64_t uint32_t int32_t float等数据的转换,由于自带强制转换造成数据变化,导致运动逆向旋转求解:基本类型:有符号与无符号的转换;长度不同的数据转换; — 需专门写处理函数static_cast 、const_cast、reinterpret_cast 、dynamic_cast 亦无法解决上述问题参考链接:C++有符号和无符号数的...原创 2019-06-14 14:59:49 · 528 阅读 · 0 评论 -
C++:explicit、implicit关键字
CExample objOne; //调用没有参数的构造函数 CExample objTwo(12, 12); //调用有两个参数的构造函数 CExample objThree(12); //同上,可以传一个参数是因为该构造函数的第二个参数有默认值 CExample objFour = 12; //执行了隐式转换,等价于CExample temp(12);objFour(temp);注意这个地方调用原创 2017-06-12 13:17:06 · 301 阅读 · 0 评论 -
C++:Macho状态机了解
设计原理:The following descriptions assume some knowledge of the statechart notation. For more information see Wikipedia .Starting point is the “State” design pattern. The essence of the pattern is to...原创 2019-01-25 19:03:23 · 398 阅读 · 0 评论 -
C++:febid的 ‘‘memory pool 的高效实现‘‘ 解析
背景知识1.1 attribute noreturn 表示没有返回值参考链接:https://www.cnblogs.com/marvin-notes/p/4482805.html1.2 __builtin_expect宏 在汇编层优化我们代码,减少跳转的次数参考链接:https://blog.csdn.net/grublinux/article/details/37543...原创 2019-02-01 16:20:30 · 228 阅读 · 0 评论 -
C++:模板
模板变量:template <typename T>T var; //声明变量模板var<int> = 7;原创 2020-12-22 15:37:13 · 76 阅读 · 0 评论 -
C++:STL组件
STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象、函数适配器原创 2020-12-18 18:47:30 · 77 阅读 · 1 评论 -
C++: list、vector、map、 set 对比&&用法
http://blog.csdn.net/alex_xhl/article/details/37692297原创 2017-06-12 13:45:54 · 579 阅读 · 0 评论 -
C++:内存泄漏检测工具
静态检测:PCLINT动态监测:Valgrind原创 2020-12-10 18:18:31 · 132 阅读 · 1 评论 -
C++: 代码之丑
在infoQ上面看见这系列文章的第一部分,给我很大的触动,以及将它转载的冲动。突然觉得原来写代码也可以这么讲究,“写代码”其实其中应该包括“设计”成分。虽然代码的可读性以及代码的运行效率有时候是存在矛盾的,同时,过于“干净”的代码并不见得就有很好的可读性,但是过于“直白”,不加任何修饰和处理的代码,也是让人绝望的。长久的“直白”代码会消磨程序员写程序的兴致和憧憬。以下转载这个系列的文章。转载时...原创 2018-03-12 14:50:21 · 618 阅读 · 0 评论