
设计模式与软件工程
设计模式与软件工程
码工许师傅
软件工程师,开源爱好者;
擅长物联网、嵌入式、人工智能相关技术;
曾获荣誉/称号:
华为开发者专家(HDE);
51CTO最有价值专家(MVP);
电子发烧友最有价值专家(MVP);
OpenHarmony第20位开发者;
OpenHarmony“开发者贡献奖”(2020年)。
展开
-
GLUT的简洁OO封装
Member function 如何作为Callback? 这里其实是两个问题。 第一个问题,member function的函数签名上有this指针,不能直接传给glut*Func作为callback。 member function不行,很自然的想到static function。 第二个问题,static function如何能够调用member function,且与之关联的对象(this指针)能够在运行时期(或者用户程序)决定? 其一,static function调用member functi原创 2014-06-05 14:07:15 · 1623 阅读 · 0 评论 -
Resource Acquisition Is Initialization(RAII Idiom)
原文链接:http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Resource_Acquisition_Is_Initialization转载 2014-05-12 20:25:06 · 1221 阅读 · 0 评论 -
C++代码重构——从C global到C++ template
如何实现代码的从算法正确到优秀的面向对象(或模板)封装?这或许是在写C++代码时经常需要考虑的。本文以有界队列为例,描述了一种C++代码从C算法到C++模板的重构方法。这种方法简单可行,实现了逻辑(算法)设计与接口设计两个步骤的分离。原创 2014-04-18 21:57:49 · 7160 阅读 · 0 评论 -
bullet HashMap 内存紧密的哈希表
bullet 作为开源实时物理引擎,在速度和性能上有着优秀的表现。本文首先分析了bullet的内存对齐、动态数组,然后分析了std::ordered_map的内存布局,最后分析了btHashMap内存布局的独特之处,并解释了为什么这种设计有着优秀的性能表现。PS:对算法、数据结构、内存管理、高性能感兴趣的同学,此文绝对值得一看。原创 2014-11-09 14:07:20 · 2682 阅读 · 0 评论